Skip to content

test(playwright): add AppMode URL-handling spec next to the OSS app-mode router - #34627

Merged
ShaileshParmar11 merged 5 commits into
mainfrom
ShaileshParmar11/mysql-test-failing
Oct 5, 2026
Merged

ShaileshParmar11 merged 5 commits into
mainfrom
ShaileshParmar11/mysql-test-failing

Conversation

@ShaileshParmar11

@ShaileshParmar11 ShaileshParmar11 commented Oct 5, 2026 •

Copy link
Copy Markdown
Contributor

Describe your changes:

Tests only. This moves the OSS-owned cases of Collate's AppModeUrlHandling.spec.ts into OpenMetadata, next to the code they test. The Collate side is open-metadata/openmetadata-collate#7071.

Why. Collate's mysql~full run failed on cold boot … › preserves the query string across a reload on every retry:

Locator: getByTestId('test-case-incident-manager-table')
Error: element(s) not found

#34599 made the AI-mode incident manager render IncidentGroupsView, so that flat-table testid is gone from the route. The test lived only in Collate, so this PR's CI never ran it. Yet everything it covers is now OSS code:

Case Code under test
cold-boot hold for /observability/data-quality and /observability/incident-manager, and query string kept across a reload AppModeRoutes (waits on isApplicationsLoading)
/404 renders the AI not-found page AINotFoundPage in AppModeRoutes
/explore delegates to the classic route table inside the AI shell AppModeRoutes catch-all
/my-data renders inside the AI shell shared app-mode routes
/service/<cat>/<fqn> redirects to /connections/<cat>/<fqn> connectionsModule

Collate keeps only the AskCollate-specific cases: the /askCollate/* rewrite, /conversations, and the plugin-owned /ai-automations cold boot.

Changes from the Collate original:

  • The reload test asserts incident-groups, the view's root, instead of the removed table. The root renders in the table, empty and no-match states, so the assertion does not depend on seeded incidents.
  • The /service test boots on /my-data instead of Collate's /conversations.
  • /ai-automations is dropped from the cold-boot list, because that route comes from a Collate plugin.
  • The spec uses the OSS Features/AppMode/fixtures.ts and enableAiAppMode from Utils/appMode.ts.
image image

Type of change:

  • Improvement (test coverage)

Checklist:

  • I have read the CONTRIBUTING document.
  • I have added tests around the new logic.

Testing:

  • Ran npx playwright test playwright/e2e/Features/AppMode/AppModeUrlHandling.spec.ts --project=chromium against a local stack (dist server on Postgres and OpenSearch, Vite serving this branch, empty dataset). It passed 7 of 7 on two consecutive runs.
  • eslint and prettier --check are clean on the new file.

🤖 Generated with Claude Code

…ode router

These cases lived in Collate's AppModeUrlHandling spec, but the code they
cover now lives here: the AppModeRoutes cold-boot hold, the AI not-found
page, classic-route delegation, /my-data, and the connectionsModule
/service -> /connections redirect. Because the spec ran only in Collate,
#34599 broke its reload assertion without OSS CI noticing.

The reload test now asserts the incident-groups root, which renders whether
or not any incidents exist, instead of the removed flat table.
Copilot AI balanced review requested due to automatic review settings October 5, 2026 05:01
@ShaileshParmar11 ShaileshParmar11 added UI UI specific issues safe to test Add this label to run secure Github workflows on PRs skip-pr-checks Bypass PR metadata validation check labels Oct 5, 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.

Copilot was unable to review this pull request because the user who requested the review has reached their quota limit.

@github-actions

github-actions Bot commented Oct 5, 2026

Copy link
Copy Markdown
Contributor

🔄 Playwright impact map auto-refreshed

This PR touched specs or UI source that changed the source→spec routing map. I regenerated .github/playwright/impact-map.generated.json and pushed the diff to this branch.

- source entries: 837 → 838
- 1 added, 0 removed, 6 changed spec-list

New source→spec entries:
  openmetadata-ui/src/main/resources/ui/src/components/platform/ai-shell/AINotFoundPage/AINotFoundPage.tsx

Entries whose spec list changed:
  openmetadata-ui/src/main/resources/ui/playwright/e2e/Features/AppMode/fixtures.ts
  openmetadata-ui/src/main/resources/ui/playwright/e2e/Utils/appMode.ts
  openmetadata-ui/src/main/resources/ui/playwright/utils/entity.ts
  openmetadata-ui/src/main/resources/ui/src/components/observability/IncidentManager/IncidentGroups/IncidentGroupsView.tsx
  openmetadata-ui/src/main/resources/ui/src/components/platform/ai-shell/Sidebar/Sidebar.tsx
  openmetadata-ui/src/main/resources/ui/src/generated/entity/data/table.ts

What is this file? It is the auto-generated half of Playwright's PR planner. It routes "if source X changes, run specs Y" by walking spec imports and cross-referencing getByTestId strings. Hand-authored routing in impact-map.json always wins on conflict.

What if I want to regenerate locally instead? Run this before pushing your next change to skip the bot commit:

python3 .github/scripts/generate_playwright_impact_map.py
git add .github/playwright/impact-map.generated.json
git commit --amend --no-edit  # or a separate commit

Copilot AI balanced review requested due to automatic review settings October 5, 2026 05:01

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.

Copilot was unable to review this pull request because the user who requested the review has reached their quota limit.

@github-actions

github-actions Bot commented Oct 5, 2026 •

Copy link
Copy Markdown
Contributor

✅ Playwright Results — workflow succeeded

Validated commit 3b40de043755561aba661aa7658efd9945480640 in Playwright run 37269463843, attempt 1.

✅ 219 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) 18m 50s

⏱️ Max setup 4m 30s · max shard execution 7m 43s · max shard-job elapsed before upload 10m 50s · reporting 3s

🌐 202.75 requests/attempt · 1.77 app boots/UI scenario · 0.00% common-shard skew

Optimization targets still in progress:

  • Browser traffic was 202.75 requests per attempt (convergence target: fewer than 200).
  • Application boot ratio was 1.77 per UI scenario (395 boots / 223 scenarios; convergence target: at most 1).
Shard Passed Failed Flaky Skipped Lifecycle failed Lifecycle flaky
✅ Shard chromium-01 81 0 0 0 0 0
✅ Shard data-asset-rules-01 65 0 0 0 0 0
✅ Shard global-state-01 61 0 0 0 0 0
✅ Shard ingestion-01 1 0 0 0 0 0
✅ Shard reindex-01 2 0 0 0 0 0
✅ Shard search-rbac-01 9 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

@ShaileshParmar11 ShaileshParmar11 added safe to test Add this label to run secure Github workflows on PRs and removed skip-pr-checks Bypass PR metadata validation check safe to test Add this label to run secure Github workflows on PRs labels Oct 5, 2026
Copilot AI balanced review requested due to automatic review settings October 5, 2026 05:17

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.

Copilot was unable to review this pull request because the user who requested the review has reached their quota limit.

@github-actions

github-actions Bot commented Oct 5, 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.

@ShaileshParmar11 ShaileshParmar11 self-assigned this Oct 5, 2026
connectionsModule is a static shared module, so the redirect route exists
from first render; pre-booting /my-data only hid the cold deep-link path.
Copilot AI balanced review requested due to automatic review settings October 5, 2026 05:25

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.

Copilot was unable to review this pull request because the user who requested the review has reached their quota limit.

The planner's stale-baseline gate fails any PR whose planned spec has no
timing-baseline.json history. Durations come from a passing local run
against the docker dev stack (d51818c).
Copilot AI balanced review requested due to automatic review settings October 5, 2026 05:49

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.

Copilot was unable to review this pull request because the user who requested the review has reached their quota limit.

@gitar-bot

gitar-bot Bot commented Oct 5, 2026

Copy link
Copy Markdown
Code Review ✅ Approved

🟢 Low risk · Adds Playwright coverage for AppMode URL routing and cold-boot behavior.

Adds AppMode URL-handling tests next to the OSS app-mode router, covering cold-boot behavior for observability routes, query string preservation across reloads, AI not-found page rendering, route delegation, and service-to-connections redirects. No issues found.

Review coverage

📋 Rules No rules evaluated

🧪 Functional validation Not enabled · Set up

🤖 Auto-approval Not enabled · Set up

Options

Display: compact → Counting what did not apply, without listing it.

Comment with these commands to change the behavior for this request:

Compact
gitar display:verbose         

Was this helpful? React with 👍 / 👎 | Powered by Gitar — free for open source

@ShaileshParmar11
ShaileshParmar11 added this pull request to the merge queue Oct 5, 2026
Merged via the queue into main with commit e606db3 Oct 5, 2026
102 of 103 checks passed
@ShaileshParmar11
ShaileshParmar11 deleted the ShaileshParmar11/mysql-test-failing branch October 5, 2026 08:06

This branch was previously deployed

1 inactive deployment
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 UI UI specific issues

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants