sadpandajoe opened a new pull request, #41437:
URL: https://github.com/apache/superset/pull/41437
### SUMMARY
Migrates the Cypress "Drill to detail modal" suite
(`cypress-base/cypress/e2e/dashboard/drilltodetail.test.ts`, which was entirely
`describe.skip`'d) to the existing Playwright E2E framework, as part of the
ongoing Cypress→Playwright migration.
Each test API-builds a hermetic single-chart dashboard from `birth_names`,
renders it in the browser, drives the real drill menus, and asserts the backend
round-trip — the `/datasource/samples` POST and the filter the modal applies.
These are genuine end-to-end tests (real backend, real rendering), not
DOM-class assertions.
**Why the original was skipped:** the Cypress suite was `describe.skip`'d
because Cypress auto-scrolls the target under the sticky chart header before
each action, obstructing the right-click. That failure mode is
Cypress-specific; Playwright scrolls once and the target stays put, so the
entry points port cleanly.
**Coverage:**
- Modal mechanics — open from the chart "More Options" header menu,
paginate, and reload resets to page 1.
- Big-number value right-click drills the whole chart (no filter).
- Table cell right-click drills by that value; clearing the filter restores
the full set.
- Pivot-table cell right-click drills by the cell value.
- Pie slice and line point right-click (canvas) drill by the value under the
cursor.
**Canvas charts** previously depended on hard-coded pixel coordinates to
land on a specific slice/point (a key source of the original flakiness).
Instead, the canvas tests scan a small set of candidate points until the
context menu offers an *enabled* "Drill to detail by" submenu, then drill by
whichever value the menu offers and assert that same value round-trips into the
modal. This exercises the full canvas → contextmenu → datum → samples pipeline
while staying independent of exact chart geometry.
**Excluded** (matching the original suite's own `describe.skip`s): Bar,
Area, World Map, and Radar charts, which were skipped upstream for
chart-specific reasons.
Uses the existing framework: the `DashboardPage` page object (extended with
drill-to-detail helpers), the `testWithAssets` fixture (auto-cleans created
charts/dashboards), and the shared API/timeout helpers.
### BEFORE/AFTER SCREENSHOTS OR ANIMATED GIF
N/A — test-only change.
### TESTING INSTRUCTIONS
From `superset-frontend/`, against a running stack:
```
PLAYWRIGHT_BASE_URL=<url> PLAYWRIGHT_ADMIN_PASSWORD=<pw> \
npx playwright test --project=chromium
dashboard/dashboard-drill-to-detail.spec.ts
```
All 6 tests pass; verified stable across repeated runs (`--repeat-each`),
including the two canvas tests run at higher repeat counts.
### ADDITIONAL INFORMATION
- [ ] Has associated issue:
- [ ] Required feature flags:
- [ ] Changes UI
- [ ] Includes DB Migration (follow approval process in
[SIP-59](https://github.com/apache/superset/issues/13351))
- [ ] Migration is atomic, supports rollback & is backwards-compatible
- [ ] Confirm DB migration upgrade and downgrade tested
- [ ] Runtime estimates and downtime expectations provided
- [ ] Introduces new feature or API
- [ ] Removes existing feature or API
- [x] Migrates existing tests
🤖 Generated with [Claude Code](https://claude.com/claude-code)
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: [email protected]
For queries about this service, please contact Infrastructure at:
[email protected]
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]