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]

Reply via email to