Skip to content

test(glossary): drop four status-filter tests that were never implemented (1.13) - #30845

Closed
siddhant1 wants to merge 1 commit into
1.13from
chore/drop-unimplemented-glossary-status-filter-tests-1.13
Closed

test(glossary): drop four status-filter tests that were never implemented (1.13)#30845
siddhant1 wants to merge 1 commit into
1.13from
chore/drop-unimplemented-glossary-status-filter-tests-1.13

Conversation

@siddhant1

Copy link
Copy Markdown
Member

Cherry-pick of the main change (#30843) onto 1.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) where main has since moved to glossary-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:

params: {
  directChildrenOf: parentFQN,   // "first level/immediate children" per GlossaryTermResource
  entityStatus,
  ...
}

and the backend ANDs them (GlossaryTermResource):

.addQueryParam("directChildrenOf", parentTermFQNParam)
.addQueryParam("entityStatus", entityStatus);

A nested term is eliminated by directChildrenOf before entityStatus is 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:

Test Asserts 1.13 main
filter by parent status … allows expansion (kept) root term
filter by child status shows child as flat result depth-2 ✘ 17.3s ✘ 17.8s
filter by middle level status depth-2 ✘ 17.6s
filter by leaf level status depth-3 ✘ 17.5s
deeply nested term (5 levels) depth-5 ✘ 17.6s

The uniform ~17.5s is the verifyTermVisible locator timeout expiring — the term genuinely never renders. glossaryAPI.ts and GlossaryTermResource.java are 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 terms stays. 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

  • 66 deletions, 0 insertions; no behavioural change to any surviving test.
  • No orphaned fixtures — basicChild, multiChild, deepTerms and multiChildrenParent are all still used by remaining tests (multiChildrenParent still parents multiChildren).
  • 15 tests remain in the file.
  • prettier --check clean, eslint 0 problems.

🤖 Generated with Claude Code

…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)
@siddhant1
siddhant1 requested a review from a team as a code owner August 3, 2026 07:16
@github-actions

github-actions Bot commented Aug 3, 2026

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.

@github-actions github-actions Bot added the UI UI specific issues label Aug 3, 2026
@github-actions

github-actions Bot commented Aug 3, 2026

Copy link
Copy Markdown
Contributor

Hi there 👋 Thanks for your contribution!

The OpenMetadata team will review the PR shortly! Once it has been labeled as safe to test, the CI workflows
will start executing and we'll be able to make sure everything is working as expected.

Let us know if you need any help!

@gitar-bot

gitar-bot Bot commented Aug 3, 2026

Copy link
Copy Markdown
Code Review ✅ Approved

Removes four unimplemented and permanently skipped Playwright tests for glossary status filtering that asserted unsupported backend behaviour. 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 👍 / 👎 | Gitar | Powered by Gitar — free for open source

@siddhant1

Copy link
Copy Markdown
Member Author

Consolidated into #30839 so 1.13 has a single PR covering the whole skip list — removals and re-enables together.

@siddhant1 siddhant1 closed this Aug 3, 2026
@siddhant1
siddhant1 deleted the chore/drop-unimplemented-glossary-status-filter-tests-1.13 branch August 3, 2026 07:38
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

UI UI specific issues

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant