import sys from starlette.testclient import TestClient from app.main import app def test_endpoints(): client = TestClient(app) # Test pages res = client.get("/") assert res.status_code == 200, f"Index failed: {res.status_code}" assert "Die Kammern des Steins der Weisen" in res.text res = client.get("/broom") assert res.status_code == 200 assert "Der Besenflug" in res.text res = client.get("/bottles") assert res.status_code == 200 assert "Snapes Flaschenrätsel" in res.text res = client.get("/sliding") assert res.status_code == 200 assert "Alchemie-Schieberätsel" in res.text res = client.get("/finale") assert res.status_code == 200 assert "ESCAPE GEMEISTERT" in res.text # Test API Broom complete res = client.post("/api/broom/complete", json={"score": 500, "time_taken": 25}) assert res.status_code == 200 data = res.json() assert data["success"] is True # Test API Bottles drink: Poison (Bottle 1) res = client.post("/api/bottles/drink", json={"bottle": 1, "gate": "ahead"}) assert res.status_code == 200 assert res.json()["result"] == "poison" # Test API Bottles drink: Wine (Bottle 2) res = client.post("/api/bottles/drink", json={"bottle": 2, "gate": "ahead"}) assert res.status_code == 200 assert res.json()["result"] == "wine" # Test API Bottles drink: Back (Bottle 7) res = client.post("/api/bottles/drink", json={"bottle": 7, "gate": "back"}) assert res.status_code == 200 assert res.json()["result"] == "success_back" # Test API Bottles drink: Ahead / Black fire (Bottle 3 - Dwarf) res = client.post("/api/bottles/drink", json={"bottle": 3, "gate": "ahead"}) assert res.status_code == 200 assert res.json()["result"] == "success_ahead" # Test API Reset res = client.post("/api/reset") assert res.status_code == 200 assert res.json()["success"] is True print("ALL TESTS PASSED SUCCESSFULLY! 🧙‍♂️✨") if __name__ == "__main__": test_endpoints()