test(glossary): drop four status-filter tests that were never implemented (1.13) - #30845
test(glossary): drop four status-filter tests that were never implemented (1.13)#30845siddhant1 wants to merge 1 commit into
Conversation
…nted These four arrived skipped in #25428 (`12d85f310f`), the same commit that created the file, and have never executed once in five months. They are not regressions and not flakes — they are a specification for behaviour the backend does not have. Each carried its own reason inline from birth: "Requires backend to return nested terms as flat results when filtered". That is accurate. The glossary term listing sends `directChildrenOf` and `entityStatus` on the same request (`glossaryAPI.ts` `getFirstLevelGlossaryTermsPaginated`), and the backend ANDs them (`GlossaryTermResource` `.addQueryParam("directChildrenOf", …).addQueryParam("entityStatus", …)`), so a nested term is eliminated by the hierarchy filter before its status is ever considered. No status value can surface a grandchild as a flat result. Confirmed by running them: on a real 1.13 stack all four fail at ~17.5s (the locator timeout — the term genuinely never renders), while every sibling test that asserts only root-level terms passes. `glossaryAPI.ts` and `GlossaryTermResource` are byte-identical across 1.13, main and 2.0, so the outcome is the same everywhere. Removed rather than left skipped: five bare `test.skip`s surface on every nightly triage list as if they were failures, and cost review attention each time someone asks why the glossary suite is red. If flat subtree filtering is built, these are better rewritten against the real API than resurrected from a five-month-old skip. No fixtures are orphaned — `basicChild`, `multiChild`, `deepTerms` and the rest are still used by the surviving tests. Prettier and eslint clean. Co-Authored-By: Claude <noreply@anthropic.com> (cherry picked from commit 4a7aa34)
❌ 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! |
Code Review ✅ ApprovedRemoves four unimplemented and permanently skipped Playwright tests for glossary status filtering that asserted unsupported backend behaviour. No issues found. 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 |
|
Consolidated into #30839 so 1.13 has a single PR covering the whole skip list — removals and re-enables together. |
Cherry-pick of the
mainchange (#30843) onto1.13. Applied cleanly, no conflicts.Note: 1.13's copy of this spec still uses the pre-testid selectors in
applyStatusFilter(.status-selection-dropdown,.glossary-dropdown-label,.ant-btn-primary) wheremainhas since moved toglossary-status-option-*testids. That divergence is pre-existing, sits in a shared helper, and is untouched here — the four removed blocks are identical on both branches.The failure measurements in the table below were taken on a real 1.13 stack built from this branch point.
Removes four Playwright tests that have never executed since the day they were written.
Archaeology
All four arrived skipped in #25428 (
12d85f310f, 2026-03-05) — "fix glossary status frontend filtering logic to move to backend" — the same commit that created the file. They have been skipped for five months and have never run once. The six subsequent commits to this file are all incidental (Prettier #26358, eslint-plugin-playwright #26494, checkstyle #26445, TableV2 #29728, ETag stripping #30371, shard runtime #30310) and never touched the skips.They are not regressions and not flakes. They are a specification for behaviour the product does not have, written ahead of an implementation that never landed.
Why they cannot pass
Each carried its reason inline from birth: "Requires backend to return nested terms as flat results when filtered". That is exactly right.
getFirstLevelGlossaryTermsPaginated(src/rest/glossaryAPI.ts) sends the hierarchy filter and the status filter on the same request:and the backend ANDs them (
GlossaryTermResource):A nested term is eliminated by
directChildrenOfbeforeentityStatusis evaluated, so no status value can ever surface a grandchild as a flat result.Measured, not assumed
Ran them un-skipped against real local stacks. The pass/fail split matches the mechanism exactly — every test asserting a non-root term fails; every sibling asserting only root terms passes:
filter by parent status … allows expansion(kept)filter by child status shows child as flat resultfilter by middle level statusfilter by leaf level statusdeeply nested term (5 levels)The uniform ~17.5s is the
verifyTermVisiblelocator timeout expiring — the term genuinely never renders.glossaryAPI.tsandGlossaryTermResource.javaare byte-identical across 1.13, main and 2.0, so the outcome is identical on every branch.Why remove rather than leave skipped
Five bare
test.skips show up on every nightly triage list looking like failures, and cost review attention each time someone asks why the glossary suite is red — which is how this investigation started. If flat subtree filtering is ever built, these are better rewritten against the real API than resurrected from a five-month-old skip.Deliberately kept
change filter while expanded updates visible root termsstays. It was also born skipped, but for a different reason ("Requires re-filtering expanded state which isn't fully implemented") and unlike these four it passes today (2.8s on 1.13). Whatever was missing in March shipped since and nobody revisited the marker. Re-enabling it is a separate change so this PR stays a pure deletion.Verification
basicChild,multiChild,deepTermsandmultiChildrenParentare all still used by remaining tests (multiChildrenParentstill parentsmultiChildren).prettier --checkclean,eslint0 problems.🤖 Generated with Claude Code