test(e2e): drop 9 dead tests (4 never-run glossary, 5 marketplace w/ removed routes), re-enable 2 that pass - #30843
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>
❌ 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! |
There was a problem hiding this comment.
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-testeslint-disable lines for those cases.
✅ Playwright Results — workflow succeededValidated commit ✅ 109 passed · ❌ 0 failed · 🟡 0 flaky · ⏭️ 0 skipped · 🧰 0 lifecycle flaky PerformanceBlocking 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:
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>
|
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! |
There was a problem hiding this comment.
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>
|
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! |
There was a problem hiding this comment.
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 ({
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>
There was a problem hiding this comment.
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
`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>
🚦 Removed from the merge queue —
|
… 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>
Code Review ✅ Approved 2 resolved / 2 findingsDrops 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
✅ Quality: Stale skip-reason comments left above re-enabled tests
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 |
…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>
…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>
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.
getFirstLevelGlossaryTermsPaginatedsends the hierarchy and status filters on one request:and
GlossaryTermResourceANDs them:directChildrenOfmeans "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.tsandGlossaryTermResource.javaare byte-identical across 1.13, main and 2.0.Re-enabled — 2 tests that pass today
Glossary › Term should stay approved when changes made by reviewerentityStatusGlossaryStatusFilter › change filter while expanded updates visible root terms#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' })— whenfilter by child statusfails, 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 WidgetandActivityFeed › Mention notificationalso pass on main (30.3s / 9.4s) but are out of scope here and remain skipped.Verification
basicChild,multiChild,deepTerms,multiChildrenParentall still used by surviving tests.eslint-disable playwright/no-skipped-testdirectives removed with their skips, otherwise they become unused-directive errors.prettier --checkclean;eslint0 errors.🤖 Generated with Claude Code