import unittest from unittest.mock import patch from app.sync_agent import _append_detect_result_projection_snapshot class SyncAgentTests(unittest.TestCase): @patch("app.sync_agent.append_detect_result_projection_if_changed") def test_append_detect_result_projection_snapshot_uses_active_job_summary(self, mock_append) -> None: _append_detect_result_projection_snapshot( { "job_id": 1, "job_code": "detect-20260419030000-abc123", "status": "running", "items_pending": 12, "items_running": 3, "items_completed": 8, "items_blacklisted": 1, "items_failed": 2, } ) mock_append.assert_called_once() payload = mock_append.call_args.kwargs["detect"] self.assertEqual("running", payload["phase_label"]) self.assertEqual("detect-20260419030000-abc123", payload["active_job"]["job_code"]) self.assertEqual(12, payload["progress"]["pending"]) self.assertEqual(3, payload["progress"]["running"]) self.assertEqual(8, payload["progress"]["completed"]) self.assertEqual(1, payload["progress"]["blacklisted"]) self.assertEqual(2, payload["progress"]["failed"]) if __name__ == "__main__": unittest.main()