feat(avatar): align authorization page with design
This commit is contained in:
@@ -92,3 +92,67 @@ def test_authorization_requires_login_and_rejects_unknown_permissions(authorizat
|
||||
},
|
||||
).json()
|
||||
assert invalid["code"] == 400
|
||||
|
||||
|
||||
def test_avatar_permission_settings_default_and_persist(authorization_context):
|
||||
context = authorization_context
|
||||
endpoint = f"/api/avatar/{context['avatar'].id}/permission-settings"
|
||||
|
||||
initial = client.get(endpoint, headers=context["owner_headers"]).json()
|
||||
assert initial["code"] == 200
|
||||
assert initial["data"] == {
|
||||
"avatarId": context["avatar"].id,
|
||||
"permissions": ["friend", "chat"],
|
||||
}
|
||||
|
||||
updated = client.put(
|
||||
endpoint,
|
||||
headers=context["owner_headers"],
|
||||
json={"permissions": ["interact", "publish", "friend", "friend"]},
|
||||
).json()
|
||||
assert updated["code"] == 200
|
||||
assert updated["data"]["permissions"] == ["friend", "publish", "interact"]
|
||||
|
||||
reloaded = client.get(endpoint, headers=context["owner_headers"]).json()
|
||||
assert reloaded["data"]["permissions"] == ["friend", "publish", "interact"]
|
||||
|
||||
|
||||
def test_avatar_permission_settings_allow_all_disabled(authorization_context):
|
||||
context = authorization_context
|
||||
endpoint = f"/api/avatar/{context['avatar'].id}/permission-settings"
|
||||
|
||||
response = client.put(
|
||||
endpoint,
|
||||
headers=context["owner_headers"],
|
||||
json={"permissions": []},
|
||||
).json()
|
||||
assert response["code"] == 200
|
||||
assert response["data"]["permissions"] == []
|
||||
|
||||
|
||||
def test_avatar_permission_settings_validate_owner_and_permissions(authorization_context):
|
||||
context = authorization_context
|
||||
endpoint = f"/api/avatar/{context['avatar'].id}/permission-settings"
|
||||
|
||||
invalid = client.put(
|
||||
endpoint,
|
||||
headers=context["owner_headers"],
|
||||
json={"permissions": ["takeover"]},
|
||||
).json()
|
||||
assert invalid["code"] == 400
|
||||
|
||||
missing = client.put(
|
||||
endpoint,
|
||||
headers=context["owner_headers"],
|
||||
json={},
|
||||
).json()
|
||||
assert missing["code"] == 400
|
||||
|
||||
forbidden = client.get(
|
||||
f"/api/avatar/{context['other_avatar'].id}/permission-settings",
|
||||
headers=context["owner_headers"],
|
||||
)
|
||||
assert forbidden.status_code == 403
|
||||
|
||||
unauthenticated = client.get(endpoint)
|
||||
assert unauthenticated.status_code == 401
|
||||
|
||||
Reference in New Issue
Block a user