Skip to content

test(e2e): drop 9 dead tests (4 never-run glossary, 5 marketplace w/ removed routes), re-enable 2 that pass - #30843

Merged
ShaileshParmar11 merged 5 commits into
mainfrom
chore/drop-unimplemented-glossary-status-filter-tests
Aug 4, 2026
Merged

test(e2e): drop 9 dead tests (4 never-run glossary, 5 marketplace w/ removed routes), re-enable 2 that pass#30843
ShaileshParmar11 merged 5 commits into
mainfrom
chore/drop-unimplemented-glossary-status-filter-tests

Conversation

@siddhant1

@siddhant1 siddhant1 commented Aug 3, 2026

Copy link
Copy Markdown
Member

Removed — 4 tests, skipped at inception, never executed

GlossaryStatusFilterNestedTerms: filter by child status, filter by middle level status, filter by leaf level status, deeply nested term (5 levels).

All four arrived skipped in #25428 (12d85f310f, 2026-03-05) — the commit that created the file — each carrying "Requires backend to return nested terms as flat results when filtered". Five months, zero executions. The six later commits to this file never touched the skips.

They cannot pass, by construction. getFirstLevelGlossaryTermsPaginated sends the hierarchy and status filters on one request:

params: { directChildrenOf: parentFQN, entityStatus, ... }

and GlossaryTermResource ANDs them:

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

directChildrenOf means "first level/immediate children", so a nested term is eliminated before its status is considered. Measured: all four fail at ~17.5–17.9s (locator timeout — the term never renders) on both a 1.13 stack and a main stack, while every sibling asserting only root-level terms passes. glossaryAPI.ts and GlossaryTermResource.java are byte-identical across 1.13, main and 2.0.

Re-enabled — 2 tests that pass today

Test Why it was skipped Measured
Glossary › Term should stay approved when changes made by reviewer async approval workflow reverted a PATCHed entityStatus ✅ 3/3 — 1.0m, 58.6s, 58.3s
GlossaryStatusFilter › change filter while expanded updates visible root terms born skipped in #25428: "re-filtering expanded state isn't fully implemented" ✅ 2.8s

#29931 fixed the approval machinery in July (approve/reject condition scheme, duplicate edges, stuck resolves) — exactly the cause behind the first test. Re-run three times to guard against its known load-dependent race; green every time.

The second was born skipped like the four removed ones, but for a different reason, and unlike them it is green. It is re-enabled rather than deleted precisely because deleting a passing test loses coverage. It only appeared on the nightly skip list at all because the file is test.describe.configure({ mode: 'serial' }) — when filter by child status fails, Playwright reports every later test in the file as skipped without running it. With those four gone the cascade cannot occur.

Also removed — 5 DataMarketplace navigation tests

Search returns results and clicking navigates to entity, Widget card click navigates to entity detail page, View All links navigate correctly, Clicking announcement navigates to entity page, Data consumer can search and view results.

Unlike the four above, these were born active and green in #26255 and ran for ten days. #27377 removed the /data-marketplace/* sub-routes they navigate to and skipped them in the same commit with "re-enable when the standalone marketplace shell is reintroduced". Four months on, that shell has not returned, so the skips are permanent rather than pending. Measured: all five fail at 1.0m on both a 1.13 stack and a main stack.

Scope is the 5 dead tests, not the 3 spec files. The marketplace page is alive (11 components on every branch) and the files keep 8 passing tests — rendering, data-product and domain creation via the drawer, search empty state, search popover, and the admin-vs-consumer permission split.

Deliberately left skipped

CustomizeWidgets › KPI Widget and ActivityFeed › Mention notification also pass on main (30.3s / 9.4s) but are out of scope here and remain skipped.

Verification

  • No orphaned fixtures — basicChild, multiChild, deepTerms, multiChildrenParent all still used by surviving tests.
  • Stale eslint-disable playwright/no-skipped-test directives removed with their skips, otherwise they become unused-directive errors.
  • prettier --check clean; eslint 0 errors.

🤖 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>
@siddhant1
siddhant1 requested a review from a team as a code owner August 3, 2026 07:16
Copilot AI review requested due to automatic review settings 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 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!

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.

Pull request overview

This PR removes four Playwright status-filter tests in the Glossary nested-terms suite that were permanently test.skip’d and depend on backend behavior (flattening nested matches into a flat filtered result set) that the product/API does not implement.

Changes:

  • Deleted four skipped test cases that asserted filtered visibility of non-root nested terms as flat results.
  • Removed the accompanying inline skip rationale and playwright/no-skipped-test eslint-disable lines for those cases.

@github-actions

github-actions Bot commented Aug 3, 2026

Copy link
Copy Markdown
Contributor

✅ Playwright Results — workflow succeeded

Validated commit e63c845abc2326a0c18e9425db960db3889ce4e5 in Playwright run 30797210508, attempt 1.

✅ 109 passed · ❌ 0 failed · 🟡 0 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) 47m 22s

⏱️ Max setup 1m 53s · max shard execution 11m 47s · max shard-job elapsed before upload 19m 2s · reporting 3s

🌐 172.20 requests/attempt · 1.67 app boots/UI scenario · 0.00% common-shard skew

Optimization targets still in progress:

  • Application boot ratio was 1.67 per UI scenario (194 boots / 116 scenarios; convergence target: at most 1).
Shard Passed Failed Flaky Skipped Lifecycle failed Lifecycle flaky
✅ Shard chromium-01 109 0 0 0 0 0

📦 Download artifacts

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

Each of these was written active and green, then skipped later when something
broke. All four pass now on a real main stack built from this branch point
(`revision 64df7a3`), so the markers are stale:

| Test | Skipped since | Measured on main |
|---|---|---|
| `ActivityFeed › Mention notification shows correct user details` | #25894 (`test.fixme`) | 9.4s |
| `CustomizeWidgets › KPI Widget` | `test.fixme` | 30.3s |
| `Glossary › Term should stay approved when changes made by reviewer` | BE approval workflow | 1.0m |
| `GlossaryStatusFilter › change filter while expanded updates visible root terms` | #25428 | 2.8s |

`Term should stay approved` is the interesting one: its documented cause was the
async approval workflow reverting a PATCHed entityStatus, and #29931 fixed exactly
that machinery (approve/reject condition scheme, duplicate edges, stuck resolves)
in July. main carries #29931; the test now passes.

`change filter while expanded` never ran — it was born skipped in #25428 claiming
"re-filtering expanded state isn't fully implemented". That shipped at some point
and nobody revisited the marker. It is kept rather than deleted precisely because
it passes: it is the one test in that file whose skip was stale rather than
blocked on the missing backend support.

Stale `eslint-disable playwright/no-skipped-test` directives removed with their
skips, otherwise they become unused-directive errors.

Prettier clean; eslint 0 errors.

Co-Authored-By: Claude <noreply@anthropic.com>
Copilot AI review requested due to automatic review settings August 3, 2026 07:19
@siddhant1 siddhant1 changed the title test(glossary): drop four status-filter tests that were never implemented test(e2e): resolve the glossary/marketplace skip backlog on main — remove 4 never-run tests, re-enable 4 that pass 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!

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.

Pull request overview

Copilot reviewed 4 out of 4 changed files in this pull request and generated no new comments.

Suppressed comments (3)

openmetadata-ui/src/main/resources/ui/playwright/e2e/Features/ActivityFeed.spec.ts:527

  • This comment still says the test is being skipped to unblock PR #25894, but the test has been re-enabled. Please remove/update it so the file doesn't imply the test is still flaky/disabled.
  // Failure needed to be investigated - skipping for now to unblock
  // PR - https://github.com/open-metadata/OpenMetadata/pull/25894
  test('Mention notification shows correct user details in Notification box', async ({

openmetadata-ui/src/main/resources/ui/playwright/e2e/Pages/Glossary.spec.ts:1972

  • The comment says the workflow is constantly failing and needs a BE fix, but the test is now enabled. This is misleading for future triage; please remove or update the comment to reflect the current status.
  // Need to fix the workflow from BE end, as it constantly failing in the AUT's
  test('Term should stay approved when changes made by reviewer', async ({

openmetadata-ui/src/main/resources/ui/playwright/e2e/Features/Glossary/GlossaryStatusFilterNestedTerms.spec.ts:476

  • This comment indicates the test should be skipped due to missing re-filter support, but the test is now enabled. Please remove/update the comment to avoid confusing future readers.
    // Skip: Requires re-filtering expanded state which isn't fully implemented
    test('change filter while expanded updates visible root terms', async ({

Both pass on a main stack (30.3s and 9.4s), but they are out of scope for this PR
and stay skipped. The two re-enables that remain — Term should stay approved and
change filter while expanded — are unaffected.

Co-Authored-By: Claude <noreply@anthropic.com>
Copilot AI review requested due to automatic review settings August 3, 2026 07:24
@siddhant1 siddhant1 changed the title test(e2e): resolve the glossary/marketplace skip backlog on main — remove 4 never-run tests, re-enable 4 that pass test(e2e): drop 4 never-run glossary status-filter tests, re-enable 2 that pass 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!

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.

Pull request overview

Copilot reviewed 2 out of 2 changed files in this pull request and generated no new comments.

Suppressed comments (2)

openmetadata-ui/src/main/resources/ui/playwright/e2e/Pages/Glossary.spec.ts:1972

  • This comment says the approval workflow is "constantly failing" and implies the test should be skipped, but the test has been re-enabled in this PR. Please update/remove the comment so it reflects current behavior (otherwise it will mislead future maintainers when the test flakes/fails).
  // Need to fix the workflow from BE end, as it constantly failing in the AUT's
  test('Term should stay approved when changes made by reviewer', async ({

openmetadata-ui/src/main/resources/ui/playwright/e2e/Features/Glossary/GlossaryStatusFilterNestedTerms.spec.ts:476

  • This comment still says "Skip" / "isn't fully implemented", but the test is now enabled. Please update/remove the comment so it doesn't incorrectly suggest the test is expected to be skipped/failing.
    // Skip: Requires re-filtering expanded state which isn't fully implemented
    test('change filter while expanded updates visible root terms', async ({

siddhant1 added a commit that referenced this pull request Aug 3, 2026
Closes the last gap between this branch and #30843, so 1.13 lands the same
glossary state as main and 2.0 in a single merge — no post-merge cherry-pick of
#30843 onto 1.13 is needed, and none should be attempted: the other two pieces of
#30843 (the four removals and the change-filter re-enable) are already on this
branch and would conflict.

Measured passing on a real 1.13 stack (1.9m).

Caveat worth carrying into review: **#29931 is not on 1.13**. That PR fixed the
approve/reject condition scheme — duplicate edges and stuck resolves in the
approval workflow — which is the documented cause behind this test's original skip
("BE approval-workflow reverts it"). `APPROVE_CONDITION` and
`getExpectedResultForActiveTask` are both absent here, so 1.13 passes this test
without the root fix. On main it passed 3/3 (1.0m, 58.6s, 58.3s) with the fix; on
1.13 it has one measured pass without it, and the failure mode is a load-dependent
race that shows up under CI concurrency rather than on an idle machine.

If it flakes in nightlies, backport #29931 rather than re-skipping. Note that is
not a casual cherry-pick — it touches 21 files including
bootstrap/sql/migrations/native/2.0.0/{mysql,postgres}/schemaChanges.sql, and a
trial cherry-pick onto 1.13 conflicts in 14 of them.

Co-Authored-By: Claude <noreply@anthropic.com>
@siddhant1 siddhant1 added the safe to test Add this label to run secure Github workflows on PRs label Aug 3, 2026
@siddhant1 siddhant1 changed the title test(e2e): drop 4 never-run glossary status-filter tests, re-enable 2 that pass test(e2e): drop 9 dead tests (4 never-run glossary, 5 marketplace w/ removed routes), re-enable 2 that pass Aug 3, 2026
@siddhant1
siddhant1 enabled auto-merge August 3, 2026 07:44
@siddhant1 siddhant1 added the skip-pr-checks Bypass PR metadata validation check label Aug 3, 2026
anuj-kumary
anuj-kumary previously approved these changes Aug 3, 2026

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.

Pull request overview

Copilot reviewed 5 out of 5 changed files in this pull request and generated no new comments.

Suppressed comments (2)

openmetadata-ui/src/main/resources/ui/playwright/e2e/Pages/Glossary.spec.ts:1971

  • This comment still says the workflow needs to be fixed / is constantly failing, but the test has been re-enabled and is expected to pass. Please update or remove the comment so it doesn't mislead future maintainers (it currently reads like the test should still be skipped).
  // Need to fix the workflow from BE end, as it constantly failing in the AUT's

openmetadata-ui/src/main/resources/ui/playwright/e2e/Features/Glossary/GlossaryStatusFilterNestedTerms.spec.ts:475

  • This comment still says the test should be skipped due to missing re-filtering support, but the test has been re-enabled. Please update/remove the comment so it reflects the current intent (regression coverage) rather than implying an expected failure.
    // Skip: Requires re-filtering expanded state which isn't fully implemented

karanh37
karanh37 previously approved these changes Aug 3, 2026
@siddhant1 siddhant1 added safe to test Add this label to run secure Github workflows on PRs and removed safe to test Add this label to run secure Github workflows on PRs labels Aug 3, 2026
`ui-checkstyle` failed on DataMarketplacePermissions.spec.ts. Removing the
"Data consumer can search and view results" test left `searchMarketplace`
imported and unused (0 references), which `organize-imports-cli` strips.

CI's Playwright step is organize-imports -> eslint --fix -> prettier --write; the
earlier local pass ran only eslint and prettier, and neither flags a dead import,
which is why this got through locally but not in CI.

Also removes two skip-reason comments left above tests re-enabled earlier in this
PR, flagged in review — the source contradicted itself:

- Glossary.spec.ts: "Need to fix the workflow from BE end, as it constantly
  failing in the AUT's" above the now-active `Term should stay approved`
- GlossaryStatusFilterNestedTerms.spec.ts: "Skip: Requires re-filtering expanded
  state which isn't fully implemented" above the now-active `change filter while
  expanded`

ActivityFeed.spec.ts's comment is left alone — that un-skip was reverted, so its
note still matches a `test.fixme`.

Verified by re-running the full CI sequence: idempotent, 0 eslint errors.

Co-Authored-By: Claude <noreply@anthropic.com>
Copilot AI review requested due to automatic review settings August 3, 2026 08:23
@siddhant1
siddhant1 dismissed stale reviews from karanh37 and anuj-kumary via e63c845 August 3, 2026 08:23

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.

Pull request overview

Copilot reviewed 5 out of 5 changed files in this pull request and generated no new comments.

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

github-actions Bot commented Aug 3, 2026

Copy link
Copy Markdown
Contributor

🚦 Removed from the merge queue — failed_checks (2026-08-03T20:37:41Z)

Blocked the queue: playwright-summary

@ShaileshParmar11
ShaileshParmar11 added this pull request to the merge queue Aug 4, 2026
Merged via the queue into main with commit aeafd62 Aug 4, 2026
68 of 69 checks passed
@ShaileshParmar11
ShaileshParmar11 deleted the chore/drop-unimplemented-glossary-status-filter-tests branch August 4, 2026 04:54
siddhant1 added a commit that referenced this pull request Aug 4, 2026
… 4 that never ran (#30839)

* test(glossary): make selectActiveGlossary selector robust (#27566)

Backport of dd73bd9 to 1.13. Prerequisite for re-enabling
GlossaryNavigation's empty-state test, which 1.13 skips with the note
"selectActiveGlossary not selecting the correct glossary".

The old selector was `page.getByRole('menuitem', { name }).first()` — unscoped
and non-exact, so it matched any menuitem on the page whose accessible name
merely *contained* the target, and `.first()` then silently picked whichever
came first in the DOM. With two glossaries sharing a name prefix the test drove
the wrong one. Scope it to the `glossary-left-panel` sidebar, require an exact
label match, and wait for the item rather than racing the panel's render.

The label the sidebar renders is displayName, so the UI create helper now fills
display-name and the call sites pass displayName. Verified every
selectActiveGlossary call site on 1.13 already passes a displayName, so the
stricter match has no other call site to break.

(cherry picked from commit dd73bd9)

Co-Authored-By: Claude <noreply@anthropic.com>

* test(e2e): re-enable domain-rename, glossary empty-state and header-permission specs on 1.13

Backports the un-skips from #30451 (64c33fc) and #30699 (507caf7), which
main and 2.0 have both carried since end of July. These four tests are the whole
1.13-only half of the nightly skip list — every other entry is skipped on all
three branches.

- EntityRenameConsolidation "Domain - rename then update description" and
  "Domain - multiple rename + update cycles": pure un-skip, no body change, same
  as main.
- GlossaryNavigation "should show empty state when glossary has no terms": the
  assertion targeted the "No Glossary Term found" row, which only a non-matching
  status filter renders — an empty glossary renders a placeholder instead. main
  asserts its EmptyPlaceholder testid; 1.13 still routes through ErrorPlaceHolder
  and picks NO_DATA over CREATE (glossaryTermStatus is null for a glossary, not
  Approved), so assert no-data-placeholder here. Depends on the preceding
  selectActiveGlossary backport.
- EntityPermissions "EditTier, EditOwners, EditCertification allowed but EditAll
  denied": the body contradicted its own title, asserting the edit buttons were
  visible. getPrioritizedEditPermission is byte-identical on 1.13 and main, so
  the corrected not.toBeVisible() assertions hold here too.

Co-Authored-By: Claude <noreply@anthropic.com>

* test(glossary): drop four status-filter tests that were never implemented

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)
(cherry picked from commit f099c7c)

* test(glossary): re-enable change filter while expanded on 1.13

Verified passing at 2.8s on a real 1.13 stack built from this branch.

Born skipped in #25428 claiming "re-filtering expanded state isn't fully
implemented" — that shipped since and nobody revisited the marker. It is the one
stale skip in this file, as opposed to the four genuinely backend-blocked ones
removed in the preceding commit.

It only surfaced on the nightly skip list as a separate entry because the file is
`test.describe.configure({ mode: 'serial' })`: when `filter by child status` fails,
Playwright reports every later test in the file as skipped without executing it.
With those four gone the cascade cannot occur, so this test now actually runs.

Co-Authored-By: Claude <noreply@anthropic.com>

* style: fix indentation on the re-enabled EntityPermissions test

fb2837e landed `headerPermTest(` with five leading spaces instead of four,
which fails `prettier --check` and would block the UI Checkstyle job.

The assertion change in that commit is correct and identical to what this branch
already carried — verified passing on a real 1.13 stack (3.0s). Only the
indentation is corrected here.

Co-Authored-By: Claude <noreply@anthropic.com>

* test(glossary): re-enable Term should stay approved on 1.13

Closes the last gap between this branch and #30843, so 1.13 lands the same
glossary state as main and 2.0 in a single merge — no post-merge cherry-pick of
#30843 onto 1.13 is needed, and none should be attempted: the other two pieces of
#30843 (the four removals and the change-filter re-enable) are already on this
branch and would conflict.

Measured passing on a real 1.13 stack (1.9m).

Caveat worth carrying into review: **#29931 is not on 1.13**. That PR fixed the
approve/reject condition scheme — duplicate edges and stuck resolves in the
approval workflow — which is the documented cause behind this test's original skip
("BE approval-workflow reverts it"). `APPROVE_CONDITION` and
`getExpectedResultForActiveTask` are both absent here, so 1.13 passes this test
without the root fix. On main it passed 3/3 (1.0m, 58.6s, 58.3s) with the fix; on
1.13 it has one measured pass without it, and the failure mode is a load-dependent
race that shows up under CI concurrency rather than on an idle machine.

If it flakes in nightlies, backport #29931 rather than re-skipping. Note that is
not a casual cherry-pick — it touches 21 files including
bootstrap/sql/migrations/native/2.0.0/{mysql,postgres}/schemaChanges.sql, and a
trial cherry-pick onto 1.13 conflicts in 14 of them.

Co-Authored-By: Claude <noreply@anthropic.com>

---------

Co-authored-by: Claude <noreply@anthropic.com>
@gitar-bot

gitar-bot Bot commented Aug 4, 2026

Copy link
Copy Markdown
Code Review ✅ Approved 2 resolved / 2 findings

Drops dead E2E tests for unimplemented glossary filters and removed marketplace routes, while re-enabled passing glossary tests, addressing stale skip-reason comments. No issues found.

✅ 2 resolved
Quality: Stale skip-reason comments left above re-enabled tests

📄 openmetadata-ui/src/main/resources/ui/playwright/e2e/Features/ActivityFeed.spec.ts:525-526 📄 openmetadata-ui/src/main/resources/ui/playwright/e2e/Pages/Glossary.spec.ts:1971 📄 openmetadata-ui/src/main/resources/ui/playwright/e2e/Features/Glossary/GlossaryStatusFilterNestedTerms.spec.ts:475
When these three tests were re-enabled, their skip-justification comments were not removed, so the source now contradicts itself: ActivityFeed.spec.ts still says "Failure needed to be investigated - skipping for now to unblock", Glossary.spec.ts still says "Need to fix the workflow from BE end, as it constantly failing", and GlossaryStatusFilterNestedTerms.spec.ts still says "Skip: Requires re-filtering expanded state which isn't fully implemented" — all above tests that are now active. This misleads future readers into thinking the tests are still skipped/broken. Remove the obsolete comments (as was done for the eslint-disable directives).

Quality: Stale skip-reason comments left above re-enabled tests

📄 openmetadata-ui/src/main/resources/ui/playwright/e2e/Features/Glossary/GlossaryStatusFilterNestedTerms.spec.ts:475 📄 openmetadata-ui/src/main/resources/ui/playwright/e2e/Pages/Glossary.spec.ts:1971
Both tests re-enabled in this PR still carry their old skip-reason comments, which are now misleading: GlossaryStatusFilterNestedTerms.spec.ts:475 says "// Skip: Requires re-filtering expanded state which isn't fully implemented" and Glossary.spec.ts:1971 says "// Need to fix the workflow from BE end, as it constantly failing in the AUT's". Since the test.skip(...) was changed back to test(...), these comments now describe a state that no longer exists and will confuse future readers. Remove the stale comments (or replace them with a note explaining the fix that made re-enabling possible).

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 added a commit that referenced this pull request Aug 4, 2026
…removed routes), re-enable 2 that pass (#30843) (#30912)

* test(glossary): drop four status-filter tests that were never implemented

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.



* test(e2e): re-enable four specs that pass on main today

Each of these was written active and green, then skipped later when something
broke. All four pass now on a real main stack built from this branch point
(`revision 64df7a3`), so the markers are stale:

| Test | Skipped since | Measured on main |
|---|---|---|
| `ActivityFeed › Mention notification shows correct user details` | #25894 (`test.fixme`) | 9.4s |
| `CustomizeWidgets › KPI Widget` | `test.fixme` | 30.3s |
| `Glossary › Term should stay approved when changes made by reviewer` | BE approval workflow | 1.0m |
| `GlossaryStatusFilter › change filter while expanded updates visible root terms` | #25428 | 2.8s |

`Term should stay approved` is the interesting one: its documented cause was the
async approval workflow reverting a PATCHed entityStatus, and #29931 fixed exactly
that machinery (approve/reject condition scheme, duplicate edges, stuck resolves)
in July. main carries #29931; the test now passes.

`change filter while expanded` never ran — it was born skipped in #25428 claiming
"re-filtering expanded state isn't fully implemented". That shipped at some point
and nobody revisited the marker. It is kept rather than deleted precisely because
it passes: it is the one test in that file whose skip was stale rather than
blocked on the missing backend support.

Stale `eslint-disable playwright/no-skipped-test` directives removed with their
skips, otherwise they become unused-directive errors.

Prettier clean; eslint 0 errors.



* Revert re-enabling KPI Widget and the ActivityFeed mention test

Both pass on a main stack (30.3s and 9.4s), but they are out of scope for this PR
and stay skipped. The two re-enables that remain — Term should stay approved and
change filter while expanded — are unaffected.



* test(marketplace): drop five navigation tests whose routes were removed

These five differ from the four glossary tests removed earlier in this PR: they
were born **active and green** in #26255 (`e90ab792f6`, 2026-04-06) and ran for ten
days. #27377 (`3129a14b10`) then removed the `/data-marketplace/*` sub-routes they
navigate to and skipped them in the same commit, noting "re-enable when the
standalone marketplace shell is reintroduced". That shell has not been
reintroduced in four months, so the skips are now a permanent fixture rather than
a pending re-enable.

Confirmed dead by running them un-skipped: all five fail at 1.0m on both a real
1.13 stack and a real main stack — the navigation target does not exist.

Scope is the five dead navigation tests, **not** the three spec files. The
marketplace page is alive — 11 marketplace components ship on every branch — and
the files retain 8 passing tests covering rendering, data-product and domain
creation via the drawer, the search empty state, the search popover, and the
admin-vs-consumer permission split. Deleting the files would have taken that with
them.

If the standalone marketplace shell returns, these are better rewritten against the
new routes than restored from a four-month-old skip.

Prettier clean; eslint 0 errors.



* Fix UI checkstyle: drop dead import and two stale skip comments

`ui-checkstyle` failed on DataMarketplacePermissions.spec.ts. Removing the
"Data consumer can search and view results" test left `searchMarketplace`
imported and unused (0 references), which `organize-imports-cli` strips.

CI's Playwright step is organize-imports -> eslint --fix -> prettier --write; the
earlier local pass ran only eslint and prettier, and neither flags a dead import,
which is why this got through locally but not in CI.

Also removes two skip-reason comments left above tests re-enabled earlier in this
PR, flagged in review — the source contradicted itself:

- Glossary.spec.ts: "Need to fix the workflow from BE end, as it constantly
  failing in the AUT's" above the now-active `Term should stay approved`
- GlossaryStatusFilterNestedTerms.spec.ts: "Skip: Requires re-filtering expanded
  state which isn't fully implemented" above the now-active `change filter while
  expanded`

ActivityFeed.spec.ts's comment is left alone — that un-skip was reverted, so its
note still matches a `test.fixme`.

Verified by re-running the full CI sequence: idempotent, 0 eslint errors.



---------


(cherry picked from commit aeafd62)

Co-authored-by: Claude <noreply@anthropic.com>
k-anshul pushed a commit to k-anshul/OpenMetadata that referenced this pull request Aug 12, 2026
…removed routes), re-enable 2 that pass (open-metadata#30843)

* test(glossary): drop four status-filter tests that were never implemented

These four arrived skipped in open-metadata#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>

* test(e2e): re-enable four specs that pass on main today

Each of these was written active and green, then skipped later when something
broke. All four pass now on a real main stack built from this branch point
(`revision 64df7a3`), so the markers are stale:

| Test | Skipped since | Measured on main |
|---|---|---|
| `ActivityFeed › Mention notification shows correct user details` | open-metadata#25894 (`test.fixme`) | 9.4s |
| `CustomizeWidgets › KPI Widget` | `test.fixme` | 30.3s |
| `Glossary › Term should stay approved when changes made by reviewer` | BE approval workflow | 1.0m |
| `GlossaryStatusFilter › change filter while expanded updates visible root terms` | open-metadata#25428 | 2.8s |

`Term should stay approved` is the interesting one: its documented cause was the
async approval workflow reverting a PATCHed entityStatus, and open-metadata#29931 fixed exactly
that machinery (approve/reject condition scheme, duplicate edges, stuck resolves)
in July. main carries open-metadata#29931; the test now passes.

`change filter while expanded` never ran — it was born skipped in open-metadata#25428 claiming
"re-filtering expanded state isn't fully implemented". That shipped at some point
and nobody revisited the marker. It is kept rather than deleted precisely because
it passes: it is the one test in that file whose skip was stale rather than
blocked on the missing backend support.

Stale `eslint-disable playwright/no-skipped-test` directives removed with their
skips, otherwise they become unused-directive errors.

Prettier clean; eslint 0 errors.

Co-Authored-By: Claude <noreply@anthropic.com>

* Revert re-enabling KPI Widget and the ActivityFeed mention test

Both pass on a main stack (30.3s and 9.4s), but they are out of scope for this PR
and stay skipped. The two re-enables that remain — Term should stay approved and
change filter while expanded — are unaffected.

Co-Authored-By: Claude <noreply@anthropic.com>

* test(marketplace): drop five navigation tests whose routes were removed

These five differ from the four glossary tests removed earlier in this PR: they
were born **active and green** in open-metadata#26255 (`e90ab792f6`, 2026-04-06) and ran for ten
days. open-metadata#27377 (`3129a14b10`) then removed the `/data-marketplace/*` sub-routes they
navigate to and skipped them in the same commit, noting "re-enable when the
standalone marketplace shell is reintroduced". That shell has not been
reintroduced in four months, so the skips are now a permanent fixture rather than
a pending re-enable.

Confirmed dead by running them un-skipped: all five fail at 1.0m on both a real
1.13 stack and a real main stack — the navigation target does not exist.

Scope is the five dead navigation tests, **not** the three spec files. The
marketplace page is alive — 11 marketplace components ship on every branch — and
the files retain 8 passing tests covering rendering, data-product and domain
creation via the drawer, the search empty state, the search popover, and the
admin-vs-consumer permission split. Deleting the files would have taken that with
them.

If the standalone marketplace shell returns, these are better rewritten against the
new routes than restored from a four-month-old skip.

Prettier clean; eslint 0 errors.

Co-Authored-By: Claude <noreply@anthropic.com>

* Fix UI checkstyle: drop dead import and two stale skip comments

`ui-checkstyle` failed on DataMarketplacePermissions.spec.ts. Removing the
"Data consumer can search and view results" test left `searchMarketplace`
imported and unused (0 references), which `organize-imports-cli` strips.

CI's Playwright step is organize-imports -> eslint --fix -> prettier --write; the
earlier local pass ran only eslint and prettier, and neither flags a dead import,
which is why this got through locally but not in CI.

Also removes two skip-reason comments left above tests re-enabled earlier in this
PR, flagged in review — the source contradicted itself:

- Glossary.spec.ts: "Need to fix the workflow from BE end, as it constantly
  failing in the AUT's" above the now-active `Term should stay approved`
- GlossaryStatusFilterNestedTerms.spec.ts: "Skip: Requires re-filtering expanded
  state which isn't fully implemented" above the now-active `change filter while
  expanded`

ActivityFeed.spec.ts's comment is left alone — that un-skip was reverted, so its
note still matches a `test.fixme`.

Verified by re-running the full CI sequence: idempotent, 0 eslint errors.

Co-Authored-By: Claude <noreply@anthropic.com>

---------

Co-authored-by: Claude <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

safe to test Add this label to run secure Github workflows on PRs skip-pr-checks Bypass PR metadata validation check UI UI specific issues

Projects

None yet

Development

Successfully merging this pull request may close these issues.

5 participants