Add create-dialog integration tests
Categories
(Calendar :: Calendar Frontend, task)
Tracking
(Not tracked)
People
(Reporter: arschmitz, Unassigned)
References
(Depends on 1 open bug, Blocks 2 open bugs)
Details
(Whiteboard: [calendar-ui-create-edit])
Summary:
Add end-to-end create-dialog integration coverage for routing, defaults, readiness, Save, and legacy fallback.
Links:
-
Zeplin main create/edit: https://app.zeplin.io/project/66dd0f2b2fe8f1b63cda36f1/screen/6a0f2f285393a283202254bc
-
Zeplin time/date dropdown: https://app.zeplin.io/project/66dd0f2b2fe8f1b63cda36f1/screen/6a0f4024757c26ac36daf58d
-
Zeplin error state: https://app.zeplin.io/project/66dd0f2b2fe8f1b63cda36f1/screen/6a0f47193e23cd2704326eb2
-
Interaction guide: Create > Time: https://docs.google.com/document/d/15OpMthOHmBGyPpDBNRW8vp6CxeoitBp8n7Fti3LD10/edit?tab=t.why4m6lqup0#heading=h.kvtn68hx95tv
-
SOW: Testing plan: https://docs.google.com/document/d/1ZVLX8VjxaYsSBuywLyFsXf27Q-Pf55g8QxT8G9z0eZ4/edit?tab=t.0#heading=h.vj4d1m6tkwpz
-
Planning: Redux - Custom-element and browser tests
Acceptance criteria: -
Cover creation from the New Event CTA and from calendar click or selection.
-
Verify calendar click/selection uses a generic calendar cell or range target, without requiring an existing event element.
-
Verify menu, toolbar, and keyboard create paths with no concrete target open centered in the available calendar view.
-
Verify create launch has no edit-identifying attributes, produces a create session, and initializes the serializable draft through the normal default-provider path.
-
Verify the resolved New Event and calendar-selection defaults, including the final timed-versus-all-day product decision, and that defaults are ready before the dialog is shown or positioned.
-
Verify the create dialog does not grow after its initial centered/anchored geometry is calculated; ordinary post-open interaction follows the established scroll/overflow contract.
-
Verify a valid Save creates exactly one event through the existing transaction controller, clears only the completed session draft after success, and closes through the normal contract.
-
Verify Cancel and dirty-close discard paths do not create or modify an event.
-
Verify pref-off routing still uses the legacy behavior.
-
Assert user-visible
storeObserver-driven state transitions where relevant, without using test-only selector getters that bypass normal updates. -
Keep field-specific interactions, validation, variants, recurrence, attendees, and accessibility semantics in their owning stories.
-
Run axe checks for each rendered browser flow where supported.
Minimum test coverage:
- Enter a value in one optional row, turn the row off, then on. Check that
the input and draft keep it. Save with the row off must create an event
without that field. - Make Save fail. Check that the row enabled state and retained values remain
for retry. Use the shared row-state contract from Bug 2061214.
Out of scope:
- Exhaustive field matrices, individual field validation, edit-mode integration, Delete, and visual-regression coverage beyond the focused launch/readiness assertions.
Description
•