feat(ui): pool health score widget with trend indicators and suggestions (adopts + fixes #245) - #269
Merged
Merged
Conversation
…de assertions Integrates benzy018's PoolHealthWidget into My Groups (tabs + archived layout), adds the /members API mock fixture, and scopes E2E pool-name assertions to the heading role so getByText() no longer matches both the card and the widget.
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
The pool health widget (adopted in #269) renders a <p title={pool.name}> in addition to the pool card's <h3>, so getByText(/Responsive Pool/i)) matches two elements. Match the card heading instead, consistent with create-pool.spec.ts and dashboard-tabs.spec.ts.
This branch was successfully deployed
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Adopts @benzy018's pool health score widget (original PR #245) into the org repo, resolves the CI failure, and supersedes the original PR.
What's included
components/dashboard/pool-health-widget.tsx— horizontal scrollable card grid: SVG circular score rings (strokeDashoffset animation via framer-motion), trend icons, A–F grade badges, top suggestion per poolcomponents/dashboard/health-suggestion-list.tsx— expandable, urgency-sorted suggestion listlib/pool-health.ts— dependency-free health-scoring engine withgetCachedPoolHealth()memoizationmy-groups.tsx— widget rendered at the top of the active groups tab (skeleton while loading; hidden when no pools)Fixes vs original PR #245
getByRole("heading")increate-pool.spec.tsanddashboard-tabs.spec.ts—getByText()was matching both the card<h3>and the widget's<p title>(Playwright strict-mode failure)main(archived-tabs layout, separableactiveContent), refetched644eb8c/E2E mock-routing fixesCI
Full pipeline expected green: lint, component tests, unit tests, Soroban build, Playwright.
Closes #245 (superseded)