test(it): accept multi-select testCaseStatus[] URL in DQ dashboard pie nav - #31880
test(it): accept multi-select testCaseStatus[] URL in DQ dashboard pie nav#31880sonika-shah wants to merge 1 commit into
Conversation
…ard pie nav PR #31662 made the test-case status filter multi-select and changed BINARY_STATUS_PIE_SEGMENT_ORDER to TestCaseStatus[][]. The Entity Health pie segment now navigates with an array of statuses, serialized with bracket array syntax (testCaseStatus[]=Failed&testCaseStatus[]=Aborted, URL-encoded as testCaseStatus%5B%5D=), instead of a bare testCaseStatus=. The Java IT page object still waited on the old testCaseStatus= regex, so waitForURL never matched and the flow timed out after 20s. Widen the pattern to accept the bare, literal-bracket, and encoded-bracket forms so both single- and multi-status pies satisfy the navigation contract, mirroring the TS spec update that shipped in the same PR.
❌ 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 |
Code Review ✅ ApprovedUpdates the Playwright integration test page object to accept multi-select bracketed URL parameters for the DQ dashboard entity health pie navigation. No issues found. 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 |
✅ Playwright Results — workflow succeededValidated commit ✅ 552 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) 50m 45s ⏱️ Max setup 4m 28s · max shard execution 16m 9s · max shard-job elapsed before upload 19m 58s · reporting 5s 🌐 215.46 requests/attempt · 2.83 app boots/UI scenario · 26.52% 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 |
🚦 Removed from the merge queue —
|
Problem
DataQualityDashboardDimensionAndPieReindexUIIT.dashboardNavigationSurvivesReindexbegan failing in the nightly with a 20s Playwright timeout at the Entity Health pie step (runDashboardFlow→clickPieChartSegmentExpectsStatusNav(ENTITY_HEALTH_PIE_ID)).Root cause
PR #31662 (feat(ui): add multi-select test case status filter) made the test-case status filter multi-select and changed
BINARY_STATUS_PIE_SEGMENT_ORDERfromTestCaseStatus[]toTestCaseStatus[][]. The Entity Health pie segment now navigates with an array of statuses, whichgetTestCaseListPathserializes usingQueryString.stringify(..., { arrayFormat: 'brackets' })— i.e.testCaseStatus[]=Failed&testCaseStatus[]=Aborted(URL-encodedtestCaseStatus%5B%5D=), no longer a baretestCaseStatus=Failed.The Java IT page object still waited on the old regex
.../test-cases.*testCaseStatus=, sowaitForURLnever matched → 20s timeout. The Test Case Result pie (earlier step) still emits a single status, which is why only the Entity Health step timed out.The same PR updated the TypeScript spec (
DataQualityDashboard.spec.ts) to assertsearchParams.getAll('testCaseStatus[]'), but the Java port of that spec was not updated in lockstep.Fix
Widen the
waitForURLpattern inDataQualityDashboardPage.clickPieChartSegmentExpectsStatusNavto accept the bare, literal-bracket, and encoded-bracket forms:This keeps the single-status pie passing and unblocks the multi-status Entity Health pie, mirroring the TS spec change from #31662.
Verification
Pattern validated against all three positive URL forms (bare /
[]/%5B%5D) plus negatives (wrong path, no status param). Test-only change; no production code touched.Backport
mainand2.0both carry the stale assertion — a companion PR targets2.0.Greptile Summary
This test-only change updates the Data Quality dashboard Java Playwright page object to recognize both scalar and bracket-array
testCaseStatusquery parameters.Confidence Score: 5/5
The PR appears safe to merge because the updated test assertion covers the current scalar and bracket-array status URL forms without introducing a concrete failure.
The production URL builder emits a bare parameter for one status and bracket-array parameters for multiple statuses, and the revised pattern recognizes each documented representation while preserving the expected test-case pathname and parameter requirement.
Important Files Changed
Reviews (1): Last reviewed commit: "test(it): accept multi-select testCaseSt..." | Re-trigger Greptile