Revamped workflow details header page - #31158
Conversation
…kend calls Remove all page.route() mocks and replace with real export jobs created via the Explore UI. Tests run serially to prevent job-list contamination, use performAdminLogin for API polling, and rely on the tray's natural auto-open behaviour instead of injected mock state transitions. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
…real backend calls" This reverts commit c906954.
…ross-worker contamination
Add data-testid="csv-jobs-tray-item-{jobId}" to each tray item so Playwright
tests can target the exact job they created rather than using .first(). This
prevents parallel workers sharing the admin user's job list from causing false
positives or assertion failures.
Also fix the first test's RUNNING-job leak by waiting for the job to reach
COMPLETED before exiting, so afterEach clear-completed can dismiss it cleanly.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
…enMetadata into workflow-header
…revent cross-worker contamination" This reverts commit 7d3c546.
|
| Count | Rule |
|---|---|
| 2 | sonarjs/no-duplicate-string |
| 2 | sonarjs/cyclomatic-complexity |
| 2 | react-hooks/exhaustive-deps |
| 1 | sonarjs/no-nested-conditional |
All findings
| Location | Rule | Message | |
|---|---|---|---|
| 🟡 | src/components/WorkflowDefinitions/WorkflowBuilder/WorkflowHeader.test.tsx:206:31 |
sonarjs/no-duplicate-string |
Define a constant instead of duplicating this literal 3 times. |
| 🟡 | src/components/WorkflowDefinitions/WorkflowBuilder/WorkflowHeader.test.tsx:247:28 |
sonarjs/no-duplicate-string |
Define a constant instead of duplicating this literal 3 times. |
| 🟡 | src/components/WorkflowDefinitions/WorkflowBuilder/WorkflowHeader.tsx:47:4 |
sonarjs/cyclomatic-complexity |
{"message":"Function has a complexity of 12 which is greater than 10 authorized.","cost":2,"secondaryLocations":[{"line":47,"column":3,"endLine":47,"endColumn": |
| 🟡 | src/pages/WorkflowDefinitions/WorkflowBuilder/WorkflowBuilder.tsx:76:4 |
sonarjs/cyclomatic-complexity |
{"message":"Function has a complexity of 21 which is greater than 10 authorized.","cost":11,"secondaryLocations":[{"line":76,"column":3,"endLine":76,"endColumn" |
| 🟡 | src/pages/WorkflowDefinitions/WorkflowBuilder/WorkflowBuilder.tsx:333:6 |
react-hooks/exhaustive-deps |
React Hook useEffect has missing dependencies: 'edges' and 'nodes'. Either include them or remove the dependency array. |
| 🟡 | src/pages/WorkflowDefinitions/WorkflowBuilder/WorkflowBuilder.tsx:397:5 |
react-hooks/exhaustive-deps |
React Hook useCallback has missing dependencies: 't' and 'workflowLogic'. Either include them or remove the dependency array. |
| 🟡 | src/pages/WorkflowDefinitions/WorkflowBuilder/WorkflowBuilder.tsx:511:23 |
sonarjs/no-nested-conditional |
Extract this nested ternary operation into an independent statement. |
Fix locally (fast - only checks files changed in this branch):
make ui-checkstyle-changed
|
✅ Playwright Results — workflow succeededValidated commit ✅ 577 passed · ❌ 0 failed · 🟡 1 flaky · ⏭️ 0 skipped · 🧰 0 lifecycle flaky PerformanceBlocking targets: ✅ met · Optimization targets: 🟡 in progress Shard-job maxima below are not the full workflow wall time; the linked run includes build, fixture, planning, and reporting. 🕒 Full workflow signal wall (to summary) 54m 1s ⏱️ Max setup 3m 7s · max shard execution 18m 5s · max shard-job elapsed before upload 21m 27s · reporting 4s 🌐 199.09 requests/attempt · 2.80 app boots/UI scenario · 3.96% common-shard skew Optimization targets still in progress:
🟡 1 flaky test(s) (passed on retry)
How to debug locally# Download playwright-test-results-<shard> artifact and unzip
npx playwright show-trace path/to/trace.zip # view trace |
|
Changes have been cherry-picked to the 2.0 branch. |
* Revamped workflow details header page * test(ui): rewrite CsvJobsTray spec without API mocking — use real backend calls Remove all page.route() mocks and replace with real export jobs created via the Explore UI. Tests run serially to prevent job-list contamination, use performAdminLogin for API polling, and rely on the tray's natural auto-open behaviour instead of injected mock state transitions. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com> * Revert "test(ui): rewrite CsvJobsTray spec without API mocking — use real backend calls" This reverts commit c906954. * test(ui): scope CsvJobsTray assertions to specific jobId to prevent cross-worker contamination Add data-testid="csv-jobs-tray-item-{jobId}" to each tray item so Playwright tests can target the exact job they created rather than using .first(). This prevents parallel workers sharing the admin user's job list from causing false positives or assertion failures. Also fix the first test's RUNNING-job leak by waiting for the job to reach COMPLETED before exiting, so afterEach clear-completed can dismiss it cleanly. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com> * Revert "test(ui): scope CsvJobsTray assertions to specific jobId to prevent cross-worker contamination" This reverts commit 7d3c546. * fix lint checks --------- Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com> (cherry picked from commit 9b8cd6c)
Code Review ✅ Approved 2 resolved / 2 findingsRevamps the workflow details header page with the HeaderShell component and enhanced breadcrumbs, and updates the CsvJobsTray test spec to use real backend calls, addressing the Playwright timeout issue. No issues found. ✅ 2 resolved✅ Quality: isVisible({ timeout }) does not wait in Playwright
✅ Quality: Glossary home crumb may mislead for non-glossary workflows
OptionsDisplay: compact → Showing less information. Comment with these commands to change the behavior for this request:
Was this helpful? React with 👍 / 👎 | Powered by Gitar — free for open source |
|
Failed to cherry-pick changes to the 1.13 branch. |



Describe your changes:
Type of change:
High-level design:
N/A — small change.
Tests:
Use cases covered
Unit tests
Backend integration tests
Ingestion integration tests
Playwright (UI) tests
Manual testing performed
UI screen recording / screenshots:
Not applicable.
Checklist:
Fixes <issue-number>: <short explanation>Fixes #<issue-number>above.Summary by Gitar
WorkflowHeaderto useHeaderShellcomponent with gradient variant and enhanced breadcrumb navigationWorkflowBuilderheader stylingCsvJobsTrayE2E spec to use real backend API calls instead of request mockingThis will update automatically on new commits.