import uuid def test_register_login(test_client): # Use a random email each run so tests don't clash email = f"testuser_{uuid.uuid4().hex[:8]}@example.com" password = "TestPass123!" first_name = "Test" surname = "User" # 1) Register resp = test_client.post( "/register", data={"email": email, "first_name": first_name, "surname": surname, "password": password, "confirm_password": password}, follow_redirects=False, ) assert resp.status_code in (302, 303, 307) # likely redirect to login or dashboard # 2) Login resp = test_client.post( "/login", data={"email": email, "first_name": first_name, "surname": surname, "password": password}, follow_redirects=False, ) assert resp.status_code in (302, 303, 307) # 3) After login, we should be able to hit the end-user dashboard # using the same client (cookies kept inside TestClient) dashboard = test_client.get("/dashboard/end_user") assert dashboard.status_code == 200 assert "Tickets" in dashboard.text or "Create Ticket" in dashboard.text