Backport #29185 dashboard LCP parent optimizations to 1.13 - #31055
Conversation
* perf(ui): dashboard LCP optimization parent (#29185) * chore(ui): create dashboard lcp parent branch * perf(ui): lazy load activity feed and split editor formatting (#29178) * perf(ui): lazy load activity feed editor surfaces * fix(ui): remove activity feed cache split dependencies * fix(ui): apply activity feed checkstyle * fix(ui): consolidate block editor content formatting * fix(ui): clarify block editor server formatting * perf(ui): lazy load entity detail pages and utilities (#29179) * perf(ui): lazy load entity detail components * fix(ui): resolve entity detail lazy split imports * fix(ui): apply entity lazy checkstyle * perf(ui): lazy load glossary detail and customization utilities (#29180) * perf(ui): lazy load glossary customization views * fix(ui): resolve glossary lazy split imports * fix(ui): apply glossary checkstyle * fix(ui): apply glossary widget checkstyle * perf(ui): lazy load auth routes and service widgets (#29182) * perf(ui): lazy load service and ingestion widgets * fix(ui): remove cache leftovers from services lazy PR * fix(ui): resolve services ingestion lazy split * fix(ui): restore sync oidc candidate config * fix(ui): keep route prefetch until final cleanup * chore(ui): restore route prefetch comment * perf(ui): split task, incident, and data quality utilities (#29181) * perf(ui): split task and data quality utilities * fix(ui): resolve tasks data quality lazy split * fix(ui): remove tasks utils barrel exports * fix(ui): remove duplicate query builder css import * fix(ui): dedupe task action utils mock * perf(ui): lazy load explore, generic widgets, and shared pages (#29183) * perf(ui): lazy load explore and shared page components * fix(ui): resolve common pages lazy split * fix(ui): resolve column grid formatter import * fix(ui): dedupe task tag navigation utils * fix(ui): format entity task imports * fix(ui): avoid empty glossary terms preview * fix(ui): keep block editor parse diagnostics * Revert "fix(ui): keep block editor parse diagnostics" This reverts commit b8ddc50. * perf(ui): defer my-data shell widgets (#29177) * perf(ui): defer my-data shell widgets and cache dashboard data * fix(ui): remove dashboard cache from my data shell PR * fix(ui): address my data shell review feedback * refactor(ui): rename landing widget icon helper * refactor(ui): simplify my data service mapping * fix(ui): restore data asset icon keys * fix(ui): restore explicit data asset service buckets * fix(ui): remove following widget stale guard * fix(ui): remove my data widget stale guard * fix(ui): derive data asset service sets from enums * fix(ui): keep deferred widget test targets stable * fix(ui): keep my data widget fallback stable * fix(playwright): wait for deferred landing widgets * fix(playwright): format landing widget helpers * fix(ui): clean up my data shell changes * revert(ui): remove playwright landing widget fixes * fix(ui): preserve landing widget extension points * Fix PR1 UI checkstyle * Fix MyData widget loading edge cases * Fix MyData widget test formatting * fix(ui): stabilize lazy dashboard playwright flows * fix(ui): stabilize deferred landing widgets * fix(ui): guard NLP suggestions fetch * fix(ui): preserve landing widget image overrides * test(ui): mock landing widget image singleton * Fix lazy landing widget playwright waits * Fix landing page widget playwright waits * Stabilize following widget playwright validation * Fix following widget e2e flakiness * fix(ui): align my data widget search index * fix(ui): make landing search map extendable * fix(ui): make landing widget icons extendable * fix(ui): update curated assets widget mock * fix(ui): use default landing page layout directly * perf(ui): lazy load secondary dashboard header modules * minor fix * revert entity * test: wait for landing page domain selector * refactor: remove context center utils re-export * Fix dashboard backport review issues * Update generated TypeScript types --------- Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com> (cherry picked from commit 4c0f822)
| if (isFollowing) { | ||
| await followingWidget.isVisible(); | ||
| await followingWidget.getByTestId(`following-${entity}`).isVisible(); | ||
| } else { | ||
| await followingWidget.isVisible(); | ||
| await expect( | ||
| followingWidget.getByTestId(`following-${entity}`) | ||
| ).not.toBeVisible(); | ||
| } |
There was a problem hiding this comment.
💡 Quality: Non-asserting isVisible() weakens follow-widget validation
In validateFollowedEntityToWidget, await followingWidget.isVisible() and await followingWidget.getByTestId(\following-${entity}`).isVisible()only return a boolean and are not assertions, so they never fail or auto-wait. The former poll-based logic guaranteed the entity card actually appeared; the new isFollowing branch will pass even if the followed entity is never rendered. Wrap the visibility checks inawait expect(...).toBeVisible()` so the assertion waits and fails correctly.
Fix:
if (isFollowing) {
await expect(followingWidget).toBeVisible();
await expect(
followingWidget.getByTestId(`following-${entity}`)
).toBeVisible();
} else {
await expect(followingWidget).toBeVisible();
await expect(
followingWidget.getByTestId(`following-${entity}`)
).not.toBeVisible();
}
- Apply fix
Check the box to apply the fix or reply for a change | Was this helpful? React with 👍 / 👎
Code Review 👍 Approved with suggestions 0 resolved / 1 findingsBackports dashboard LCP parent optimizations to 1.13, preserving prior resolution work. Consider adding assertions to isVisible() in validateFollowedEntityToWidget to strengthen follow-widget validation. 💡 Quality: Non-asserting isVisible() weakens follow-widget validation📄 openmetadata-ui/src/main/resources/ui/playwright/utils/entity.ts:1450-1458 In validateFollowedEntityToWidget, Fix🤖 Prompt for agentsOptionsDisplay: 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 |
❌ UI Checkstyle Failed❌ ESLint + Prettier + Organise Imports (src)One or more source files have linting or formatting issues. ❌ Licence HeaderOne or more files are missing or have an outdated Apache 2.0 licence header. Affected files
❌ Tailwind AuditHardcoded Tailwind values found. Use a design-system utility (run ❌ Antd + Less Deprecation GuardA new Affected filesat Function._resolveFilename (node:internal/modules/cjs/loader:1401:15) Fix locally (fast - only checks files changed in this branch): make ui-checkstyle-changed |
Summary
Tracking
Testing