# backend/tests/test_structure.py import pytest from httpx import AsyncClient pytestmark = pytest.mark.anyio async def test_manage_teams( client: AsyncClient, auth_headers, valid_tournament_payload ): # Setup res = await client.post( "/tournaments", json=valid_tournament_payload, headers=auth_headers ) t_id = res.json()["id"] # 1. Add a Team new_team = {"name": "Team E"} post_res = await client.post( f"/tournaments/{t_id}/teams", json=new_team, headers=auth_headers ) assert post_res.status_code == 200 assert post_res.json()["name"] == "Team E" # 2. Verify Bracket Regenerated (Call new endpoint) bracket_res = await client.get(f"/tournaments/{t_id}/bracket") nodes = bracket_res.json() # With 5 teams -> size 8 bracket assert len(nodes) > 4 # 3. Bulk Update new_team_list = ["Team X", "Team Y"] patch_res = await client.patch( f"/tournaments/{t_id}/teams", json=new_team_list, headers=auth_headers ) assert patch_res.status_code == 200 data = patch_res.json() assert len(data) == 2 async def test_manage_courts( client: AsyncClient, auth_headers, valid_tournament_payload ): res = await client.post( "/tournaments", json=valid_tournament_payload, headers=auth_headers ) t_id = res.json()["id"] # Get initial courts courts_res = await client.get(f"/tournaments/{t_id}/courts") initial_courts = courts_res.json() assert len(initial_courts) == 2 # Delete court_id = initial_courts[0]["id"] del_res = await client.delete( f"/tournaments/{t_id}/courts/{court_id}", headers=auth_headers ) assert del_res.status_code == 200 # Create create_res = await client.post( f"/tournaments/{t_id}/courts", json={"name": "New Court"}, headers=auth_headers ) assert create_res.status_code == 200 assert create_res.json()["name"] == "New Court"