fix(playwright): stabilize bulk re-deploy and Persona AI Context entity-type tests - #33176
Merged
Merged
Conversation
TestSuitePipelineRedeploy selected the first two rows of the Data Observability grid, which lists every test-suite pipeline in the deployment ordered by name. Data Contract DQ pipelines are named with a bare UUID, so they sort ahead of the spec's own `pw-*` pipelines: the test was redeploying pipelines it does not own, and failed whenever one of those did not deploy (merge-queue run 34475633731). - select the spec's own pipelines by name via getRowByName - widen the page with ?pageSize=100 so both are always listed - key deploy statuses by pipeline id so a failure names the pipeline - add afterAll cleanup; the spec leaked both services into the shard - prune the now-stale no-positional-locator suppression - regenerate impact-map.generated.json Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
ShaileshParmar11
had a problem deploying
to
test
September 11, 2026 06:06 — with
GitHub Actions
Error
ShaileshParmar11
had a problem deploying
to
test
September 11, 2026 06:06 — with
GitHub Actions
Error
ShaileshParmar11
had a problem deploying
to
test
September 11, 2026 06:06 — with
GitHub Actions
Error
Pruning the TestSuitePipelineRedeploy suppression dropped the no-positional-locator total from 1298 to 1297, but corpus.test.mjs still recorded 1298, failing "the suppressions baseline matches its recorded state exactly" in UI Checkstyle. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
The Add Rule drawer can close the entity-type popover right after it opens, while the match preview and filter builder are still re-rendering. The pending click on the glossaryTerm option then waited out the whole test budget for a listbox that never came back (merge-queue run 34521159069, both attempts). Use the existing selectOptionWithRetry helper, which reopens the popover and retries the option click, as the entity-type switch test in the same spec already does. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Code Review ✅ ApprovedFixes two Playwright test flakes by selecting test-suite pipelines by name instead of grid position (preventing redeployment of unowned Data Contract pipelines) and retrying entity-type popover selection when the dropdown closes prematurely. Checkstyle baseline updated accordingly. No issues found. OptionsDisplay: compact → Counting what did not apply, without listing it. Comment with these commands to change the behavior for this request:
Was this helpful? React with 👍 / 👎 | Powered by Gitar — free for open source |
karanh37
approved these changes
Sep 11, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Describe your changes:
No linked issue: test-only merge-queue flake fixes, bypassed with
skip-pr-checks.Fixes two merge-queue Playwright flakes, plus the checkstyle baseline the first one touches.
1. Bulk re-deploy picked pipelines it does not own
TestSuitePipelineRedeploy.spec.ts› Re-deploy all test-suite ingestion pipelines selected the first two rows of the Data Observability grid. That grid lists every test-suite pipeline in the deployment, ordered by pipelinename. Data Contract DQ pipelines are named with a bare UUID (DataContractRepository.createIngestionPipeline→UUID.randomUUID()), so they always sort ahead of the spec's ownpw-test-suite-pipeline-*pipelines — including thedim_address_comprehensive_contractpipeline that ships in sample data. The test was redeploying pipelines it does not own, and failed whenever one of those did not deploy.Seen in merge-queue run 34475633731 (
ingestion-01): the deploy of a foreign Data Contract pipeline returned 400 (Airflow returned 500 while refreshing the DAG) on both attempts. The PR in the queue did not touch this area.Changes:
getRowByNamepinned withtoHaveCount(1)), click TableV2'slabel[slot="selection"], and asserttoBeChecked().?pageSize=100(usePagingseedspageSizefrom the URL) so both pipelines are always on the page the test reads.afterAllcleanup: the spec leaked both database services (and their suites/pipelines) into the shared listing for the rest of the shard.om-playwright/no-positional-locatorsuppression and regenerateimpact-map.generated.json.om-playwright/no-positional-locatortotal inplaywright/eslint-rules/tests/corpus.test.mjsfrom 1298 to 1297 to match the pruned baseline (UI Checkstyle's "suppressions baseline matches its recorded state exactly" test).2. Persona AI Context: entity-type popover closed under the click
PersonaAIContextRules.spec.ts› knowledge entity type forces Fully rendered on and disables it failed on both attempts in merge-queue run 34521159069 (chromium-07) and was flaky in this branch's dispatch run. The trace shows the Add Rule drawer's entity-type popover closing on its own about 0.1s after it opened — while the match preview and filter builder were still re-rendering as their requests landed — with the value stillTable. The pending click on theglossaryTermoption then waited out the 60s budget for a listbox that never came back.selectOptionWithRetryhelper, which reopens the popover and retries the option click — the same helper the entity-type switch test in this spec already uses on this dropdown.Type of change:
High-level design:
N/A — small, test-only change (5 files).
Tests:
Use cases covered
Unit tests
Not applicable — Playwright spec change only; no product code changed.
Backend integration tests
Ingestion integration tests
Playwright (UI) tests
openmetadata-ui/src/main/resources/ui/playwright/e2e/Features/TestSuitePipelineRedeploy.spec.ts,openmetadata-ui/src/main/resources/ui/playwright/e2e/Features/PersonaAIContextRules.spec.ts,openmetadata-ui/src/main/resources/ui/playwright/eslint-rules/tests/corpus.test.mjsTestSuitePipelineRedeploypassed on the first attempt iningestion-02(6.1s); run totals: 4505 passed, 0 failed, 7 flaky (all unrelated chromium specs).yarn lint:playwright0 errors,yarn test:eslint-rules114/114, rule-table--checkclean,tsc0 errors in both specs, prettier clean,generate_playwright_impact_map.py --checkup to date.Manual testing performed
PW_DEDICATED_INGESTION=true PW_PRESEEDED_STATE=true npx playwright test playwright/e2e/Features/TestSuitePipelineRedeploy.spec.ts --project=Ingestion.POST /ingestionPipelines/deploy/{id}calls, both 200, for the two pipelinesbeforeAllcreated;afterAllthen hard-deleted both services.Data Contract - dim_address_comprehensive_contractpipeline, reproducing the CI selection bug.settingClickwas swapped for a directgototo the same route for these runs, and it served the pre-TableV2 grid. The committed spec (TableV2 selection +settingClick) passed in the CI run above; its deploy assertion is keyed to the spec's own pipeline ids, so the pass confirms it deployed exactly those two.UI screen recording / screenshots:
Not applicable — no product UI change; Playwright spec only.
Checklist:
I have read the CONTRIBUTING document.
My PR title is
Fixes <issue-number>: <short explanation>— N/A, no linked issue (skip-pr-checks).My PR is linked to a GitHub issue via
Fixes #<issue-number>above. — N/A, bypassed withskip-pr-checks.I have commented on my code, particularly in hard-to-understand areas.
For JSON Schema changes: I updated the migration scripts or explained why it is not needed. — N/A, no schema changes.
For UI changes: I attached a screen recording and/or screenshots above. — N/A, no product UI change.
I have added tests (unit / integration / Playwright as applicable) and listed them above.
I have added a test that covers the exact scenario we are fixing. (The fix is to the test itself; verified locally that the pre-fix selection deploys a foreign Data Contract pipeline and the fixed selection does not.)
🤖 Generated with Claude Code