átlagos kiegészítséek jó sok
This commit is contained in:
49
backend/app/tests/e2e/test_vehicle_flow.py
Normal file
49
backend/app/tests/e2e/test_vehicle_flow.py
Normal file
@@ -0,0 +1,49 @@
|
||||
"""
|
||||
End-to-end test for Vehicle/Asset creation flow.
|
||||
Uses the authenticated_client fixture to test adding a new vehicle to the user's garage.
|
||||
"""
|
||||
import pytest
|
||||
import httpx
|
||||
import uuid
|
||||
|
||||
|
||||
@pytest.mark.asyncio
|
||||
async def test_vehicle_creation(authenticated_client: httpx.AsyncClient, setup_organization):
|
||||
"""
|
||||
Test that a user can add a new vehicle (asset) to their garage.
|
||||
Uses the new POST /api/v1/assets/vehicles endpoint.
|
||||
"""
|
||||
# Generate unique VIN and license plate
|
||||
unique_suffix = uuid.uuid4().hex[:8]
|
||||
# VIN must be exactly 17 characters
|
||||
vin = f"VIN{unique_suffix}123456" # 3 + 8 + 6 = 17
|
||||
payload = {
|
||||
"vin": vin,
|
||||
"license_plate": f"TEST-{unique_suffix[:6]}",
|
||||
# catalog_id omitted (optional)
|
||||
"organization_id": setup_organization,
|
||||
}
|
||||
# The backend will uppercase the VIN, so we compare case-insensitively
|
||||
expected_vin = vin.upper()
|
||||
|
||||
# POST to the new endpoint
|
||||
response = await authenticated_client.post(
|
||||
"/api/v1/assets/vehicles",
|
||||
json=payload
|
||||
)
|
||||
|
||||
# Assert success (201 Created)
|
||||
assert response.status_code == 201, f"Unexpected status: {response.status_code}, response: {response.text}"
|
||||
|
||||
# Parse response
|
||||
data = response.json()
|
||||
# Expect AssetResponse schema
|
||||
assert "id" in data
|
||||
assert data["vin"] == expected_vin
|
||||
assert data["license_plate"] == payload["license_plate"].upper()
|
||||
|
||||
asset_id = data["id"]
|
||||
print(f"✅ Vehicle/Asset created with ID: {asset_id}")
|
||||
|
||||
# Return the asset_id for potential use in expense test
|
||||
return asset_id
|
||||
Reference in New Issue
Block a user