Add edit-dialog integration tests
Categories
(Calendar :: Calendar Frontend, task)
Tracking
(Not tracked)
People
(Reporter: arschmitz, Unassigned)
References
(Depends on 2 open bugs, Blocks 2 open bugs)
Details
(Whiteboard: [calendar-ui-create-edit])
Summary:
Add end-to-end edit-dialog integration coverage for attribute routing, loader readiness, draft changes, Save, and Cancel.
Links:
-
Zeplin main create/edit: https://app.zeplin.io/project/66dd0f2b2fe8f1b63cda36f1/screen/6a0f2f285393a283202254bc
-
Zeplin guests subview: https://app.zeplin.io/project/66dd0f2b2fe8f1b63cda36f1/screen/6a106fea17e89a34ddffd33f
-
Zeplin repeat subview: https://app.zeplin.io/project/66dd0f2b2fe8f1b63cda36f1/screen/6a10620cf1139fa048b0868f
-
Interaction guide: Create > Header: https://docs.google.com/document/d/15OpMthOHmBGyPpDBNRW8vp6CxeoitBp8n7Fti3LD10/edit?tab=t.why4m6lqup0#heading=h.8gbnd57zp5o1
-
SOW: Objective/front-end-only scope: https://docs.google.com/document/d/1ZVLX8VjxaYsSBuywLyFsXf27Q-Pf55g8QxT8G9z0eZ4/edit?tab=t.0#heading=h.2yd4s6tah866
-
Planning: Redux - Custom-element and browser tests
Acceptance criteria: -
Cover opening an existing event in edit mode through the normal route.
-
Verify edit launch sets
calendar-id,event-id, andrecurrence-idwhen editing an occurrence; the dialog resolves the source itself rather than accepting a preloaded event object. -
Verify the loader retains raw source data privately, maps a plain serializable source snapshot into the current session draft, and renders UI through normal
storeObserverupdates. -
Verify source-to-draft hydration completes before
PositionedDialog.show()and does not grow or mis-position the initial dialog. -
Verify a route replacement rejects stale source results and leaves only the latest session’s draft visible.
-
Edit and Save title, date/time, and calendar values. Verify moving calendars occurs only inside the successful Save transaction.
-
Verify Cancel and dirty-close discard paths leave the persisted event unchanged.
-
Verify successful Save updates the intended event exactly once, clears only the completed session draft, and closes through the normal contract; failure retains the draft for retry.
-
Keep attendee variants, invitation persistence, Delete confirmation, recurrence behavior, and field-specific validation in their owning stories.
-
Run axe checks for each rendered browser flow where supported.
Minimum test coverage:
- Load an event with a filled optional row. Turn it off and save. Check that
the saved event no longer has that field, even though its draft value was
retained while preparing Save. - Turn the row off and on before Save. Check that its input and draft values
survive and are saved. A failed Save must keep row state and values for retry. - Check that Cancel and Discard leave the original event unchanged. Use the
shared row-state contract from Bug 2061214.
Out of scope:
- Exhaustive field matrices, attendee and invitation journeys, Delete, full recurrence coverage, visual-regression coverage beyond readiness assertions, and legacy editor behavior.
Description
•