fix(topology): validate time and list missions
This commit is contained in:
@@ -41,5 +41,40 @@ class TopologyApiServingTests(unittest.TestCase):
|
||||
)
|
||||
|
||||
|
||||
class TopologyApiQueryTests(unittest.TestCase):
|
||||
@classmethod
|
||||
def setUpClass(cls) -> None:
|
||||
app = create_app()
|
||||
app.config.update(TESTING=True)
|
||||
cls.client = app.test_client()
|
||||
|
||||
def test_invalid_time_is_json_400(self) -> None:
|
||||
response = self.client.get(
|
||||
"/api/v1/bases/guanghan/snapshot?at=not-a-time"
|
||||
)
|
||||
self.assertEqual(response.status_code, 400)
|
||||
self.assertEqual(response.get_json()["error"], "invalid_time")
|
||||
|
||||
def test_time_and_mission_preserve_context(self) -> None:
|
||||
response = self.client.get(
|
||||
"/api/v1/bases/guanghan/snapshot"
|
||||
"?mission=GHC-01&at=2025-01-02T08:00:00%2B08:00"
|
||||
)
|
||||
self.assertEqual(response.status_code, 200)
|
||||
query = response.get_json()["query"]
|
||||
self.assertEqual(query["requestedMission"], "GHC-01")
|
||||
self.assertEqual(query["anchorSource"], "explicit_time")
|
||||
|
||||
def test_mission_list_is_database_backed(self) -> None:
|
||||
response = self.client.get("/api/v1/bases/guanghan/missions")
|
||||
self.assertEqual(response.status_code, 200)
|
||||
missions = response.get_json()["missions"]
|
||||
self.assertIn("GHC-05", [mission["code"] for mission in missions])
|
||||
for mission in missions:
|
||||
self.assertIn("title", mission)
|
||||
self.assertIn("occurrenceStatus", mission)
|
||||
self.assertIn("lastEventAt", mission)
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
unittest.main()
|
||||
|
||||
Reference in New Issue
Block a user