Description
There is no E2E coverage for experiments at all today — which also means the migration issue (deleting the old UI) has no safety net without this. Build the Playwright suite for the whole portlet, plus the regression proving the old UVE flow is untouched while FEATURE_FLAG_EXPERIMENTS is off.
Playwright specs in core-web/apps/dotcms-ui-e2e (page objects + fixtures per screen), covering:
- Site-wide list renders; search by name and page path; status chip filtering with counts; ARCHIVED hidden by default, visible when selected.
- Pagination and column sort (default Modified DESC).
- Deep-links: a URL carrying
filter + status + page + orderby restores the exact view; back/forward walks the states; a bare /experiments carries no params.
- Row actions per status (kebab gating follows
AllowedActionsByExperimentStatus): archive, restore, cancel schedule, end, abort, delete — each with confirm and toast.
Create/Update (#37003)
/experiments/new: create by typing a name and selecting a page (autosave POST, URL becomes /:id/configuration without a history entry).
?url=/index preselects the page; invalid value shows a message.
- Goal/variants/scheduling edits persist across a reload (autosave PATCH).
- Start with missing fields reveals the 8 validation rules and scrolls to the first error.
- Start → RUNNING (no date) / SCHEDULED (with date); Stop → ENDED; locked state disables the form.
- Stats, tabs and summary for a RUNNING and an ENDED experiment.
- Below 10 sessions the table shows the empty state.
- Promote: confirm dialog (RUNNING copy mentions auto-end), promoted state hides Promote buttons.
UVE integration (#37005)
- Flag ON: variant
Edit Content round-trip — portlet → UVE → back to /experiments/:id/configuration, variant marked as edited.
- Flag OFF regression: the old per-page UVE experiments flow works byte-identically — nav item, per-page list, configure, reports.
Fixtures
- Seeded experiments per status (DRAFT/SCHEDULED/RUNNING/ENDED/ARCHIVED) via the REST API in test setup; the manual
cms_layouts_portlets registration scripted in the suite's global setup.
Acceptance Criteria
Priority
High — gates the migration issue.
Additional Context
Description
There is no E2E coverage for experiments at all today — which also means the migration issue (deleting the old UI) has no safety net without this. Build the Playwright suite for the whole portlet, plus the regression proving the old UVE flow is untouched while
FEATURE_FLAG_EXPERIMENTSis off.Playwright specs in
core-web/apps/dotcms-ui-e2e(page objects + fixtures per screen), covering:List (#36989)
filter+status+page+orderbyrestores the exact view; back/forward walks the states; a bare/experimentscarries no params.AllowedActionsByExperimentStatus): archive, restore, cancel schedule, end, abort, delete — each with confirm and toast.Create/Update (#37003)
/experiments/new: create by typing a name and selecting a page (autosave POST, URL becomes/:id/configurationwithout a history entry).?url=/indexpreselects the page; invalid value shows a message.Results (#37004)
UVE integration (#37005)
Edit Contentround-trip — portlet → UVE → back to/experiments/:id/configuration, variant marked as edited.Fixtures
cms_layouts_portletsregistration scripted in the suite's global setup.Acceptance Criteria
Priority
High — gates the migration issue.
Additional Context
docs/testing/E2E_TESTS.md.