def _admin_headers(client): login = client.post( "/api/v1/auth/login", json={"email": "admin@compton.example", "password": "Admin1234"}, ) token = login.json()["access_token"] return {"Authorization": f"Bearer {token}"} def test_create_and_read_published_page(client): headers = _admin_headers(client) created = client.post( "/api/v1/content/pages", headers=headers, json={"slug": "about", "title": "About", "body": "

Hello

", "status": "published"}, ) assert created.status_code == 200 fetched = client.get("/api/v1/content/pages/about") assert fetched.status_code == 200 assert fetched.json()["slug"] == "about" def test_list_all_pages_requires_admin(client): response = client.get("/api/v1/content/pages/manage/all") assert response.status_code == 401 def test_list_all_pages_includes_drafts(client): headers = _admin_headers(client) created = client.post( "/api/v1/content/pages", headers=headers, json={"slug": "draft-page", "title": "Draft", "body": "

Draft

", "status": "draft"}, ) assert created.status_code == 200 listed = client.get("/api/v1/content/pages/manage/all", headers=headers) assert listed.status_code == 200 slugs = [page["slug"] for page in listed.json()["data"]] assert "draft-page" in slugs public = client.get("/api/v1/content/pages") public_slugs = [page["slug"] for page in public.json()["data"]] assert "draft-page" not in public_slugs