test: add tests for platform assignment in user/vendor creation
Unit tests (test_admin_service.py): - Vendor creation without platforms - Vendor creation with single platform - Vendor creation with multiple platforms - Vendor creation with invalid platform ID (ignored) - Vendor creation with duplicate code/subdomain (fails) - Vendor creation with invalid company ID (fails) Integration tests (test_vendors.py): - Create vendor via API without platforms - Create vendor via API with platforms - Create vendor with duplicate code fails (409) - Non-admin cannot create vendors (403) Auth tests (test_auth.py): - Super admin login includes is_super_admin=true - Platform admin login includes is_super_admin=false - Get current super admin info includes is_super_admin Total: 69 admin platform tests passing Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
@@ -175,3 +175,48 @@ class TestAdminAuthAPI:
|
||||
assert response.status_code == 200
|
||||
data = response.json()
|
||||
assert data["message"] == "Logged out successfully"
|
||||
|
||||
def test_super_admin_login_includes_is_super_admin(
|
||||
self, client, test_super_admin
|
||||
):
|
||||
"""Test super admin login includes is_super_admin in response."""
|
||||
response = client.post(
|
||||
"/api/v1/admin/auth/login",
|
||||
json={
|
||||
"email_or_username": test_super_admin.username,
|
||||
"password": "superadminpass123",
|
||||
},
|
||||
)
|
||||
|
||||
assert response.status_code == 200
|
||||
data = response.json()
|
||||
assert "user" in data
|
||||
assert "is_super_admin" in data["user"]
|
||||
assert data["user"]["is_super_admin"] is True
|
||||
|
||||
def test_platform_admin_login_includes_is_super_admin(
|
||||
self, client, test_platform_admin
|
||||
):
|
||||
"""Test platform admin login includes is_super_admin=False in response."""
|
||||
response = client.post(
|
||||
"/api/v1/admin/auth/login",
|
||||
json={
|
||||
"email_or_username": test_platform_admin.username,
|
||||
"password": "platformadminpass123",
|
||||
},
|
||||
)
|
||||
|
||||
assert response.status_code == 200
|
||||
data = response.json()
|
||||
assert "user" in data
|
||||
assert "is_super_admin" in data["user"]
|
||||
assert data["user"]["is_super_admin"] is False
|
||||
|
||||
def test_get_current_super_admin_info(self, client, super_admin_headers, test_super_admin):
|
||||
"""Test getting current super admin user info includes is_super_admin."""
|
||||
response = client.get("/api/v1/admin/auth/me", headers=super_admin_headers)
|
||||
|
||||
assert response.status_code == 200
|
||||
data = response.json()
|
||||
assert data["username"] == test_super_admin.username
|
||||
assert data["is_super_admin"] is True
|
||||
|
||||
Reference in New Issue
Block a user