test(ui): Playwright coverage for CSV export jobs tray - #30883
test(ui): Playwright coverage for CSV export jobs tray#30883anuj-kumary wants to merge 5 commits into
Conversation
❌ PR checklist incompleteThis PR cannot be merged until the following are addressed on its linked issue:
The fields live on the linked issue in the Shipping project (open the issue → right sidebar → Projects). After you set them, re-run this check (or push a commit) — issue/project changes do not re-trigger it automatically. Maintainers can bypass this check by adding the |
|
Hi there 👋 Thanks for your contribution! The OpenMetadata team will review the PR shortly! Once it has been labeled as Let us know if you need any help! |
Cover the auto-open behaviour introduced in open-metadata#30615 and the per-entity export -> tray flow, which previously had only Jest component coverage. CsvJobsTray.spec.ts: - tray auto-opens when an export job completes - tray auto-opens when an import job fails - a job already terminal on initial load is not surfaced - a terminal job does not re-open the tray after the user minimizes it EntityExportJobsTray.spec.ts (new): the real Manage -> Export flow for Database Service, Database, Database Schema, Table and Glossary surfaces the job in the tray. Hermetic: exportAsync is stubbed (no real backend job -> nothing leaks to other parallel admin workers) and csvAsyncJobs is mocked page-scoped (tray shows only this test's job), so the specs run fully independently of every other test. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
8e71ad1 to
4f180b1
Compare
|
Hi there 👋 Thanks for your contribution! The OpenMetadata team will review the PR shortly! Once it has been labeled as Let us know if you need any help! |
|
Hi there 👋 Thanks for your contribution! The OpenMetadata team will review the PR shortly! Once it has been labeled as Let us know if you need any help! |
|
Hi there 👋 Thanks for your contribution! The OpenMetadata team will review the PR shortly! Once it has been labeled as Let us know if you need any help! |
|
Hi there 👋 Thanks for your contribution! The OpenMetadata team will review the PR shortly! Once it has been labeled as Let us know if you need any help! |
|
Hi there 👋 Thanks for your contribution! The OpenMetadata team will review the PR shortly! Once it has been labeled as Let us know if you need any help! |
Code Review ✅ Approved 1 resolved / 1 findingsAdds comprehensive Playwright E2E coverage for the CSV export jobs tray with isolated stubs, addressing the OMSelectWidget caches static options, ignores field change finding. No issues found. ✅ 1 resolved✅ Bug: OMSelectWidget caches static options, ignores field change
OptionsDisplay: compact → Showing less information. Comment with these commands to change the behavior for this request:
Was this helpful? React with 👍 / 👎 | Gitar | Powered by Gitar — free for open source |
Describe your changes:
I added Playwright E2E coverage for the CSV export jobs tray, which previously only had Jest component coverage. This closes two gaps:
Type of change:
High-level design:
CsvJobsTray.spec.ts(+4 tests): tray auto-opens on export completion, auto-opens on import failure, does not surface a job already terminal on initial load, and does not re-open a terminal job after the user minimizes it.EntityExportJobsTray.spec.ts(new, 5 tests): drives the real Manage ▸ Export button for Database Service, Database, Database Schema, Table, and Glossary and asserts the job surfaces in the tray.The tray is a global, user-scoped widget and every CI worker runs as the same admin, so a real export job would leak across parallel tests. These specs are therefore hermetic and fully independent in both directions:
exportAsyncis stubbed to return a job object (still exercises the real button +runTrayExportrefresh dispatch) so no real backend job is created → nothing leaks out to other workers.csvAsyncJobsis mocked page-scoped so the tray shows only this test's synthetic job → nothing leaks in.Both routes are page-scoped and cannot affect any other running test.
Tests:
Use cases covered
Notes
eslint-plugin-playwright), Prettier, organize-imports, andtscall clean; no forbidden Playwright patterns (.only,networkidle,page.pause,force:true).🤖 Generated with Claude Code
Summary by Gitar
@react-awesome-query-builder/antdto@react-awesome-query-builder/uiOMFieldSelect,OMSelectWidget,OMMultiSelectWidget, andOMDateWidgetThis will update automatically on new commits.