Skip to content

test(it): accept multi-select testCaseStatus[] URL in DQ dashboard pie nav - #31880

Open
sonika-shah wants to merge 1 commit into
mainfrom
fix/dq-dashboard-multiselect-status-url
Open

test(it): accept multi-select testCaseStatus[] URL in DQ dashboard pie nav#31880
sonika-shah wants to merge 1 commit into
mainfrom
fix/dq-dashboard-multiselect-status-url

Conversation

@sonika-shah

@sonika-shah sonika-shah commented Aug 21, 2026

Copy link
Copy Markdown
Collaborator

Problem

DataQualityDashboardDimensionAndPieReindexUIIT.dashboardNavigationSurvivesReindex began failing in the nightly with a 20s Playwright timeout at the Entity Health pie step (runDashboardFlowclickPieChartSegmentExpectsStatusNav(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_ORDER from TestCaseStatus[] to TestCaseStatus[][]. The Entity Health pie segment now navigates with an array of statuses, which getTestCaseListPath serializes using QueryString.stringify(..., { arrayFormat: 'brackets' }) — i.e. testCaseStatus[]=Failed&testCaseStatus[]=Aborted (URL-encoded testCaseStatus%5B%5D=), no longer a bare testCaseStatus=Failed.

The Java IT page object still waited on the old regex .../test-cases.*testCaseStatus=, so waitForURL never 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 assert searchParams.getAll('testCaseStatus[]'), but the Java port of that spec was not updated in lockstep.

Fix

Widen the waitForURL pattern in DataQualityDashboardPage.clickPieChartSegmentExpectsStatusNav to accept the bare, literal-bracket, and encoded-bracket forms:

testCaseStatus(%5B%5D|\[\])?=

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

main and 2.0 both carry the stale assertion — a companion PR targets 2.0.

Greptile Summary

This test-only change updates the Data Quality dashboard Java Playwright page object to recognize both scalar and bracket-array testCaseStatus query parameters.

  • Extends the navigation URL pattern to accept literal and percent-encoded brackets.
  • Documents why single-status and multi-status pie charts produce different query-string forms.

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

Filename Overview
openmetadata-integration-tests/src/test/java/org/openmetadata/playwright/ui/pages/DataQualityDashboardPage.java Correctly broadens the status-navigation assertion for the existing scalar and multi-select URL serialization forms without changing production behavior.

Reviews (1): Last reviewed commit: "test(it): accept multi-select testCaseSt..." | Re-trigger Greptile

…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.
Copilot AI lite review requested due to automatic review settings August 21, 2026 10:47

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Copilot was unable to review this pull request because the user who requested the review has reached their quota limit.

@github-actions

Copy link
Copy Markdown
Contributor

❌ PR checklist incomplete

This PR cannot be merged until the following are addressed on its linked issue:

  • No GitHub issue is linked. Link an issue in the Development section of the PR (or add Fixes #12345 to the description). For a same-org cross-repo issue, add Fixes open-metadata/<repo>#123 to the description.

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 skip-pr-checks label.

@gitar-bot

gitar-bot Bot commented Aug 21, 2026

Copy link
Copy Markdown
Code Review ✅ Approved

Updates the Playwright integration test page object to accept multi-select bracketed URL parameters for the DQ dashboard entity health pie navigation. No issues found.

Options

Display: compact → Showing less information.

Comment with these commands to change the behavior for this request:

Compact
gitar display:verbose         

Was this helpful? React with 👍 / 👎 | Powered by Gitar — free for open source

@github-actions

Copy link
Copy Markdown
Contributor

✅ Playwright Results — workflow succeeded

Validated commit 5bf8113afe9bf8160c37409e539d034beb1f816f in Playwright run 32474203352, attempt 1.

✅ 552 passed · ❌ 0 failed · 🟡 1 flaky · ⏭️ 0 skipped · 🧰 0 lifecycle flaky

Performance

Blocking 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:

  • Common shard skew was 26.52% (convergence target: at most 15%).
  • Browser traffic was 215.46 requests per attempt (convergence target: fewer than 200).
  • Application boot ratio was 2.83 per UI scenario (1626 boots / 575 scenarios; convergence target: at most 1).
Shard Passed Failed Flaky Skipped Lifecycle failed Lifecycle flaky
✅ Shard chromium-01 101 0 0 0 0 0
✅ Shard chromium-02 109 0 0 0 0 0
🟡 Shard chromium-03 98 0 1 0 0 0
✅ Shard chromium-04 90 0 0 0 0 0
✅ Shard data-asset-rules-01 61 0 0 0 0 0
✅ Shard domain-isolation-01 16 0 0 0 0 0
✅ Shard global-state-01 34 0 0 0 0 0
✅ Shard ingestion-01 1 0 0 0 0 0
✅ Shard reindex-01 2 0 0 0 0 0
✅ Shard search-01 11 0 0 0 0 0
✅ Shard search-rbac-01 29 0 0 0 0 0
🟡 1 flaky test(s) (passed on retry)
  • Pages/Entity.spec.tsTeam as Owner Add, Update and Remove (shard chromium-03, 1 retry)

📦 Download artifacts

How to debug locally
# Download playwright-test-results-<shard> artifact and unzip
npx playwright show-trace path/to/trace.zip    # view trace

@github-merge-queue
github-merge-queue Bot removed this pull request from the merge queue due to failed status checks Aug 21, 2026
@github-actions

Copy link
Copy Markdown
Contributor

🚦 Removed from the merge queue — failed_checks (2026-08-21T12:08:16Z)

Blocked the queue: playwright-summary

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

backend safe to test Add this label to run secure Github workflows on PRs

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants