feat: export saved Week Ahead from overview (Closes #1260)
CI / lint (pull_request) Successful in 4m18s
CI / build-release (pull_request) Successful in 7s
CI / browser-journey (pull_request) Successful in 6m0s
CI / release-candidate (pull_request) Has been skipped

This commit is contained in:
timmy committed 2026-08-22 11:15:10 +00:00
1 parent 9eac3bb958
commit f0a966d3a3
7 files changed
+71 -48

No files matched your search

+20 -3
View File
@@ -105,10 +105,11 @@ def test_release_artifact_plans_seven_touch_safe_mobile_dates(
expect(cards).to_have_count(7)
expect(cards.first).to_contain_text("Next up")
expect(cards.first).to_contain_text("Ship mobile capture")
expect(page.locator("#week-review-status")).to_have_text(
"Week Ahead overview · no changes made."
)
expect(page.locator("#week-review-status")).to_contain_text("30 min over capacity")
expect(page.locator("#confirm-week-plan")).to_be_hidden()
blocked_export = page.locator("#export-saved-week-calendar")
expect(blocked_export).to_be_visible()
expect(blocked_export).to_be_disabled()
availability = page.locator("#open-week-availability")
expect(availability).to_be_visible()
availability_bounds = availability.bounding_box()
@@ -192,6 +193,22 @@ def test_release_artifact_plans_seven_touch_safe_mobile_dates(
expect(overview).to_be_visible()
expect(planned_item).to_be_focused()
assert len(saved) == writes_before_reflow + 1, "opening and inspecting Week Ahead must not add a write"
export_saved = page.locator("#export-saved-week-calendar")
expect(export_saved).to_be_visible()
expect(export_saved).to_be_enabled()
export_bounds = export_saved.bounding_box()
assert export_bounds and export_bounds["height"] >= 44
writes_before_export = len(saved)
export_saved.click()
expect(page.locator("#week-calendar-handoff")).to_be_visible()
expect(overview).to_be_hidden()
expect(page.locator('[data-week-calendar-preview="issue:acme/mobile:41:"]')).to_have_text(
"09:00–09:45 · 45 min"
)
assert len(saved) == writes_before_export, "exporting a saved week must not add a write"
page.locator("#back-to-week-review-from-calendar").click()
expect(overview).to_be_visible()
expect(export_saved).to_be_focused()
for control in (cards.first.locator("[data-week-edit-day]"), edit_week):
bounds = control.bounding_box()
assert bounds and bounds["height"] >= 44
+8 -2
View File
@@ -151,11 +151,17 @@ def test_week_calendar_handoff_is_wired_into_confirmation_with_mobile_privacy_co
assert 'id="week-calendar-days"' in index
assert 'id="share-week-calendar"' in index
assert 'id="back-to-week-review-from-calendar"' in index
assert 'id="export-saved-week-calendar"' in index
assert "Add saved week to calendar" in index
assert "Titles, references, dates, and times are included" in index
assert "Imported busy time is used only until this page reloads" in index
assert "mountWeekCalendarHandoff" in WEEK_CALENDAR.read_text()
assert "weekCalendar.open(weekPlan.state())" in dashboard
assert "weekCalendar.close()" in dashboard
assert "wc.open(weekPlan.state())" in dashboard
assert "getItem:weekFlow.i" in dashboard
assert "i:id=>getItem(id)||controller.item?.(id)" in (WEEK_CALENDAR.parent / "week-plan.js").read_text()
assert "#export-saved-week-calendar" in WEEK_CALENDAR.read_text()
assert "focusReturn=event.currentTarget" in WEEK_CALENDAR.read_text()
assert "wc.close()" in dashboard
assert "StackchainWeekCalendar.setAvailabilityProvider(workflow.availability)" in (WEEK_CALENDAR.parent / "week-calendar-import.js").read_text()
assert "Planning around imported busy time" in WEEK_CALENDAR.read_text()
assert '"static/week-calendar.js", "static/week-calendar-import.js", "static/week-plan.js"' in bundle