fix: recover Today blocker planning after reload (Closes #1068)
CI / lint (pull_request) Successful in 2m42s
CI / build-release (pull_request) Successful in 6s
CI / browser-journey (pull_request) Successful in 2m6s
CI / release-candidate (pull_request) Has been skipped

This commit is contained in:
timmy committed 2026-08-18 07:27:30 +00:00
1 parent 1bd87fc33e
commit 3c8e2e2720
5 files changed
+174 -5

No files matched your search

+37 -1
View File
@@ -257,7 +257,7 @@ def test_release_artifact_plans_hands_off_and_opens_next_mobile_issue(tmp_path:
fake_thread.join(timeout=5)
def test_release_artifact_posts_blocker_defers_and_opens_next_mobile_issue(tmp_path: Path):
def test_release_artifact_recovers_admitted_blocker_after_reload_and_opens_next_mobile_issue(tmp_path: Path):
archives = sorted((ROOT / "dist").glob("stackchain-dashboard-*.tar.gz"))
assert len(archives) == 1
fake = FakeGiteaServer(("127.0.0.1", 0))
@@ -296,8 +296,44 @@ def test_release_artifact_posts_blocker_defers_and_opens_next_mobile_issue(tmp_p
page.locator("[data-mobile-today-update]").click()
expect(page.locator("#today-progress-sheet")).to_be_visible()
page.locator("#today-progress-body").fill("Blocked waiting for the design owner")
page.locator("#post-today-progress").click()
expect(page.locator("#today-progress-sheet")).to_be_hidden()
page.locator("[data-today-break-open]").click()
page.locator('[data-today-break-minutes="5"]').click()
expect(page.locator("#resume-today-break")).to_be_visible()
page.evaluate("""() => {
localStorage.setItem('stackchain.today-progress.v1.timmy', JSON.stringify({
version: 1,
drafts: {
'issue:acme/mobile:41:': {
body: 'Blocked waiting for the design owner',
operation_id: 'already-admitted-blocker',
blocker_pending: true,
blocker_until: '2000-01-02T03:04:00.000Z'
}
}
}));
}""")
page.reload(wait_until="networkidle")
expect(page.locator("#my-work-status")).to_contain_text("2")
if page.locator("#issue-sheet").get_attribute("class") == "issue-sheet open":
page.locator("#close-issue-sheet").click()
if page.locator("#plan-today-sheet").is_visible():
page.locator("#cancel-plan-today").click()
expect(page.locator("#resume-today-break")).to_be_visible()
page.locator("#resume-today-break").click()
expect(page.locator("#issue-sheet")).to_have_class("issue-sheet open")
page.locator("#close-issue-sheet").click()
page.locator("[data-mobile-today-update]").click()
expect(page.locator("#today-progress-sheet")).to_be_visible()
expect(page.locator("#today-progress-blocker-recovery")).to_be_visible()
expect(page.locator("#today-progress-blocker-recovery")).to_contain_text("Blocker queued")
expect(page.locator("#today-progress-body")).to_be_disabled()
expect(page.locator("#today-blocker-return-at")).to_have_value("2000-01-02T03:04")
page.locator("#today-blocker-return-at").fill("2099-08-19T09:00")
blocker = page.locator("#post-today-blocker")
expect(blocker).to_have_text("Finish moving on")
bounds = blocker.bounding_box()
assert bounds and bounds["height"] >= 44
blocker.click()