Show the test suites a test case belongs to in the details page rail - #33564
Conversation
Adds a collapsible Test Suites panel to the test case details rail, between Description and Tags, built on the same WidgetCard as the Tags panel. Each suite links where the Test Suites list sends it: a table suite to its table's data quality tab, a bundle suite to its own page. An icon and a screen-reader label tell the two apart, and a tooltip shows names the narrow rail truncates. The page already fetches testCase.testSuites, so no request changes. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
|
| Count | Rule |
|---|---|
| 1 | openmetadata-imports/no-lower-layer-page-imports |
All findings
| Location | Rule | Message | |
|---|---|---|---|
| 🟡 | src/components/DataQuality/IncidentManager/TestCaseResultTab/TestCaseResultTab.component.tsx:21:1 |
openmetadata-imports/no-lower-layer-page-imports |
Pages are route-level composition modules. Move the shared implementation/type to a lower layer instead of importing a page from here. |
Fix locally (fast - only checks files changed in this branch):
make ui-checkstyle-changedThe whole row used to be the link, so clicking or hovering the empty space beside a name navigated and opened the tooltip. The link now wraps only the name, with the icon beside it. A test case in many suites made the panel tall enough to push Tags and the other rail panels off screen. The list now shows the first LIST_SIZE suites with a "+N More" / "Less" toggle, as TagsViewer does. Co-Authored-By: Claude Opus 5 <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 |
Code Review ✅ Approved🟢 Low risk Adds a Test Suites panel to the test case details page rail showing which suites a test case belongs to, with table suites linking to the table's Data Quality tab and bundle suites linking to their own suite page. Panel includes icons and screen-reader labels to distinguish suite types, truncates long names with tooltips, caps the list at five entries with a toggle for more, and collapses like the Tags panel. No issues found. OptionsDisplay: compact → Counting what did not apply, without listing it. Comment with these commands to change the behavior for this request:
Was this helpful? React with 👍 / 👎 | Powered by Gitar — free for open source |
|
✅ Playwright Results — workflow succeededValidated commit ✅ 813 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) 54m 38s ⏱️ Max setup 4m 39s · max shard execution 18m 56s · max shard-job elapsed before upload 22m 5s · reporting 5s 🌐 226.67 requests/attempt · 2.18 app boots/UI scenario · 17.17% 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 |
🚦 Removed from the merge queue —
|



Describe your changes:
Fixes open-metadata/openmetadata-collate#6410
Fixes open-metadata/openmetadata-collate#2987
TCD-10b, part of epic open-metadata/openmetadata-collate#6074.
I added a Test Suites panel to the test case details page's right rail, answering #2987 ("as a user I want to see all the test suites a test case belongs to"). Placement was agreed with product: collapsible like the Tags panel, sitting between Description and Tags.
Type of change:
High-level design:
testCase.testSuites(TestCaseClassBase.getFields()includestestSuites), so there is no new request and no backend change.TestCaseTestSuitesCardtakes the suite list as its only prop and reusesWidgetCard, the same collapsible card the Tags, Glossary Term and Data Products panels use.getTestSuiteLink, pure, in.utils.ts):TableorTestSuite) plus a screen-reader label using the existinglabel.tableandlabel.bundle-suitekeys, so there are no new translation keys.Tooltipshows the full name.Focusablelets the link itself be the tooltip trigger, the same pattern asTagsViewer.LIST_SIZE(5) suites with a "+N More" / "Less" toggle, the same pattern and translation keys asTagsViewer. Without the cap, a test case in many suites pushed Tags and the rest of the rail off screen.TestCaseResultTab's rail between Description and Tags.Not changed here:
WidgetCard's collapse button already renders a button inside the tooltip's trigger button, which affects every panel using it. It's tracked for a separate fix.Tests:
Use cases covered
Unit tests
TestCaseTestSuitesCard.test.tsx(6): table suite only, table plus bundle suite, empty state, collapsible, the five-suite cap with its toggle, and no toggle when everything fits.TestCaseTestSuitesCard.utils.test.ts(2): link target and name for each suite type.TestCaseResultTab.test.tsx: the panel is in the rail, between Description and Tags, and receivestestCase.testSuites.TestCaseResultTabfolder: 89 tests passing.Backend integration tests
Ingestion integration tests
Playwright (UI) tests
openmetadata-ui/.../ui/playwright/for UI changes.TestCaseDetailsPage.spec.tsnow adds the test case to a bundle suite in its setup, with a new test that checks:BundleTestSuiteClassgainsaddTestCasesanddelete, which other specs can reuse.yarn lint:playwrightpasses with no errors or warnings in this spec.Manual testing performed
/observability/test-case/sample_data.ecommerce_db.shopify.dim_address.shop_id.column_value_max_to_be_between/test-case-results. That test case belongs to its table suite and tomyLogicalTestSuite.dim_addresswith the table icon →/table/sample_data.ecommerce_db.shopify.dim_address/profiler/data-qualitymyLogicalTestSuitewith the test-suite icon →/test-suites/myLogicalTestSuiteUI screen recording / screenshots:
TODO: attach screenshot.
Checklist:
I have read the CONTRIBUTING document.
My PR title is
Fixes <issue-number>: <short explanation>(the issues live in the Collate repo; see the linking note above)My PR is linked to a GitHub issue via
Fixes #<issue-number>above.I have commented on my code, particularly in hard-to-understand areas.
For JSON Schema changes: I updated the migration scripts or explained why it is not needed. (Not applicable: no schema changes.)
For UI changes: I attached a screen recording and/or screenshots above.
I have added tests (unit / integration / Playwright as applicable) and listed them above.
The issue properly describes why the new feature is needed, what's the goal, and how we are building it. Any discussion or decision-making process is reflected in the issue.
I have updated the documentation.
I have added tests around the new logic.
🤖 Generated with Claude Code
The feature appears safe to merge, with a non-blocking Playwright cleanup issue that should be hardened to preserve useful setup-failure diagnostics.
Findings
Summary
This PR adds a collapsible Test Suites card to the test-case details rail and routes each listed suite according to its type.
Diagram
%%{init: {'theme': 'neutral'}}%% flowchart TD A[TestCaseResultTab] --> B[TestCaseTestSuitesCard] B --> C{Suite type} C -->|Basic table suite| D[Table Data Quality tab] C -->|Logical bundle suite| E[Test Suite details page] B --> F{More than five suites?} F -->|Yes| G[Show first five and More toggle] F -->|No| H[Show all entries]Reviews (1) · Last reviewed commit: "Merge remote-tracking branch 'origin/mai..."