test(dashboard): migrate native filter cross-filter/dependency E2E to Playwright - #41458
Draft
sadpandajoe wants to merge 1 commit into
Draft
test(dashboard): migrate native filter cross-filter/dependency E2E to Playwright#41458sadpandajoe wants to merge 1 commit into
sadpandajoe wants to merge 1 commit into
Conversation
Codecov Report✅ All modified and coverable lines are covered by tests. Additional details and impacted files@@ Coverage Diff @@
## master #41458 +/- ##
==========================================
- Coverage 65.25% 65.20% -0.05%
==========================================
Files 2793 2791 -2
Lines 157249 156853 -396
Branches 35945 35885 -60
==========================================
- Hits 102610 102279 -331
+ Misses 52663 52620 -43
+ Partials 1976 1954 -22
Flags with carried forward coverage won't be shown. Click here to find out more. ☔ View full report in Codecov by Harness. 🚀 New features to boost your workflow:
|
sadpandajoe
force-pushed
the
dashboard-pw-nativefilters
branch
from
June 26, 2026 19:21
e70576c to
b5aa0f8
Compare
✅ Deploy Preview for superset-docs-preview ready!
To edit notification comments on pull requests, go to your Netlify project configuration. |
sadpandajoe
force-pushed
the
dashboard-pw-nativefilters
branch
2 times, most recently
from
July 7, 2026 14:11
f74a343 to
982028d
Compare
… Playwright Migrate the backend-round-trip behaviours from the deprecated Cypress nativeFilters specs to Playwright. Filter dependencies are configured via the dashboard's native_filter_configuration (cascadeParentIds) and driven through the filter bar only, so no deprecated native-filter edit modal is touched. Covers: dependent filter option narrowing, default-to-first-item resolution, a filter depending on two parents, value filters re-querying target charts, and default values persisting across a reload. Modal-only flows (config-modal create/delete/reorder, bi-directional dependency prevention, numerical range display modes, tooltips, undo/cancel) assert client-side state with no backend round-trip and are left to the React Testing Library component suite. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
sadpandajoe
force-pushed
the
dashboard-pw-nativefilters
branch
from
July 22, 2026 17:58
982028d to
84cc88f
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
SUMMARY
Migrates the native-filter cross-filter / dependency E2E coverage from the deprecated Cypress suite to the Playwright framework. As with the other dashboard migrations in this series, only true end-to-end behaviours (API-created resources rendered in a real browser, asserting real backend round-trips) are migrated. Coverage that is purely client-side modal state is relocated to the React Testing Library component suite, and a small amount of removal-trigger coverage is intentionally narrowed (see ledger).
Filter dependencies are configured through the dashboard API (
cascadeParentIdsinnative_filter_configuration) and the tests then drive only the filter bar in the browser. This keeps the tests true E2E while avoiding the deprecated native-filter configuration modal entirely.Migrated E2E tests (5)
defaultToFirstItem).POST /api/v1/chart/datacount drops after the filter is applied.it.skip-ped Cypress case.MIGRATION LEDGER
Every Cypress case from the source files is classified below.
Bucket 1 — Migrated to Playwright E2E (5): the five tests above (dependent narrowing, auto-first-item, two-parent dependency, apply-value re-query, default-after-reload).
Bucket 2 — Relocated to component suite, no round-trip lost: config-modal mechanics that assert client-side state only — add/reorder filters in the config modal, bi-directional dependency prevention (cycle check), numerical range display modes, filter tooltips, undo / restore / cancel, the filter-has-default checkbox, sidebar expand/retract, edit pop-up. These never hit the backend; they are better and faster as RTL component tests.
Bucket 3 — Scope-narrowed, round-trip coverage dropped (2):
stop filtering when a filter is removedandremove parent filters. These do assert a backend round-trip (chart re-queries after a filter is removed), but their only trigger is deleting a filter through the deprecated config modal this migration avoids. There is no filter-bar path to reproduce them as true E2E, and under RTL the backend is mocked so the round-trip assertion would be lost. They are therefore a deliberate scope reduction, flagged here for objection — if we'd rather keep them, the alternative is a modal-delete helper that drives the deprecated UI.Covered elsewhere:
add a new filteris exercised by the add-filter migration in the sibling PR in this series.Upstream-skipped: time-range and column-filter cases were already
it.skipin the Cypress sources and are not revived here.BEFORE/AFTER
Before: native-filter dependency coverage lived in the deprecated Cypress suite. After: true E2E dependency coverage runs in Playwright; client-side modal coverage is tracked for the RTL component suite.
TESTING INSTRUCTIONS
ADDITIONAL INFORMATION