22
33import pytest
44
5+ from scripts .reviewer_bot_lib import app
56from tests .fixtures .app_harness import AppHarness
67from tests .fixtures .reviewer_bot import make_state , make_tracked_review_state
78from tests .fixtures .reviewer_bot_fakes import RouteGitHubApi
@@ -31,6 +32,7 @@ def test_execute_run_repair_issue314_state_health_removes_closed_rows_through_st
3132 monkeypatch .setenv ("ISSUE314_STATE_HEALTH_REPAIR_SUMMARY_PATH" , str (summary_path ))
3233
3334 state = make_state ()
35+ state ["status_projection_epoch" ] = "stale_projection_epoch"
3436 make_tracked_review_state (
3537 state ,
3638 42 ,
@@ -59,6 +61,11 @@ def test_execute_run_repair_issue314_state_health_removes_closed_rows_through_st
5961 harness .stub_load_state (lambda * , fail_on_unavailable = False : state )
6062 harness .stub_save_state (lambda current : saved .append (json .loads (json .dumps (current ))) or True )
6163 harness .stub_sync_status_labels (lambda current , issue_numbers : (_ for _ in ()).throw (AssertionError ("issue314 repair should not broad-sync labels" )))
64+ monkeypatch .setattr (
65+ app ,
66+ "collect_status_projection_repair_items" ,
67+ lambda bot , state : (_ for _ in ()).throw (AssertionError ("issue314 repair broadened through epoch repair" )),
68+ )
6269
6370 result = harness .run_execute ()
6471
@@ -77,6 +84,7 @@ def test_execute_run_repair_issue314_state_health_removes_closed_rows_through_st
7784 assert payload ["output_keys" ] == sorted (payload .keys ())
7885 assert saved
7986 assert "42" not in saved [- 1 ]["active_reviews" ]
87+ assert saved [- 1 ]["status_projection_epoch" ] == "stale_projection_epoch"
8088
8189
8290def test_execute_run_repair_issue314_state_health_emits_summary_only_after_state_save (
0 commit comments