58 lines
1.8 KiB
Python
58 lines
1.8 KiB
Python
"""
|
|
End-to-end test for Organization onboarding flow.
|
|
Uses the authenticated_client fixture to test the POST /api/v1/organizations/onboard endpoint.
|
|
"""
|
|
import pytest
|
|
import httpx
|
|
|
|
|
|
@pytest.mark.asyncio
|
|
async def test_organization_onboard(authenticated_client: httpx.AsyncClient):
|
|
"""
|
|
Test that a user can create an organization via the onboard endpoint.
|
|
"""
|
|
# Prepare payload according to CorpOnboardIn schema
|
|
payload = {
|
|
"full_name": "Test Corporation Kft.",
|
|
"name": "TestCorp",
|
|
"display_name": "Test Corporation",
|
|
"tax_number": "12345678-2-41",
|
|
"reg_number": "01-09-123456",
|
|
"country_code": "HU",
|
|
"language": "hu",
|
|
"default_currency": "HUF",
|
|
# Atomic address fields
|
|
"address_zip": "1234",
|
|
"address_city": "Budapest",
|
|
"address_street_name": "Test",
|
|
"address_street_type": "utca",
|
|
"address_house_number": "1",
|
|
"address_stairwell": "A",
|
|
"address_floor": "2",
|
|
"address_door": "3",
|
|
# Optional contacts
|
|
"contacts": [
|
|
{
|
|
"full_name": "John Doe",
|
|
"email": "john@example.com",
|
|
"phone": "+36123456789",
|
|
"contact_type": "primary"
|
|
}
|
|
]
|
|
}
|
|
|
|
response = await authenticated_client.post(
|
|
"/api/v1/organizations/onboard",
|
|
json=payload
|
|
)
|
|
|
|
# Assert success (201 Created or 200 OK)
|
|
assert response.status_code in (200, 201), f"Unexpected status: {response.status_code}, response: {response.text}"
|
|
|
|
# Parse response
|
|
data = response.json()
|
|
assert "organization_id" in data
|
|
assert data["organization_id"] > 0
|
|
assert data["status"] == "pending_verification"
|
|
|
|
print(f"✅ Organization created with ID: {data['organization_id']}") |