fix(dashboard): CI unit tests, loading skeleton, flaky timer, recipients error - #1172
Merged
harystyleseze merged 1 commit intoAug 1, 2026
Conversation
…nts error Resolves four dashboard issues: - harystyleseze#1092: dashboard-e2e.yml never ran the dashboard's vitest suite. Add a `unit` job that installs the root deps and runs the dashboard vitest config (which references ../tests/setup.ts and the root's test tooling), failing the workflow on any unit-test failure. Existing dashboard/** path filter applies. - harystyleseze#1111: loading.tsx hardcoded 7 tab placeholders for an 8-tab nav (missing 'Approvals'), causing a layout shift. Derive the skeleton from DASHBOARD_TABS so it can never drift from the real nav. - harystyleseze#1102: the 'transaction fetch timeout' test awaited a real 5000ms setTimeout under Vitest's 5000ms default timeout, guaranteeing a timeout/flake. Convert to fake timers (vi.useFakeTimers + advanceTimersByTimeAsync); real timers are restored in a finally so no other test is affected. - harystyleseze#1112: useRecipients swallowed /recipients failures. Expose an `error` state (per-source health pattern, harystyleseze#213) surfaced via DashboardHeader's 'Data issue' chip, and cover the error/non-ok/success paths with a new test.
|
@ANAVHEOBA is attempting to deploy a commit to the Harrison Eze's projects Team on Vercel. A member of the Team first needs to authorize it. |
|
@JessicaOmoyeme Great news! 🎉 Based on an automated assessment of this PR, the linked Wave issue(s) no longer count against your application limits. You can now already apply to more issues while waiting for a review of this PR. Keep up the great work! 🚀 |
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
Resolves four dashboard issues, each scoped to its acceptance criteria.
Changes
dashboard-e2e.ymlgains aunitjob that installs the root deps and runs the dashboard vitest config (dashboard/vitest.config.ts, which references../tests/setup.tsand the root's vitest /@vitejs/plugin-react/ jsdom tooling). Fails the workflow on any unit-test failure; the existingdashboard/**path filter still applies. A comment in the workflow documents the gap.loading.tsxnow derives its tab-bar placeholders fromDASHBOARD_TABSinstead of a second hardcoded array that omittedApprovals(7 vs 8), so the skeleton can't drift from the real nav.should allow transaction fetch timeout without blocking agent infotest used a real 5000mssetTimeoutunder Vitest's 5000ms default timeout. Converted to fake timers (vi.useFakeTimers+advanceTimersByTimeAsync), restored in afinallyso no other test is slowed.useRecipientsnow exposes anerrorstate (per-source health pattern from Three parallel polls fail silently if any one errors #213) surfaced throughDashboardHeader's "Data issue" chip, instead of silently swallowing/recipientsfailures. New test covers the reject, non-ok, and success paths.Validation
independent-fetches(incl. the Fix independent-fetches.test.ts — test awaits a real 5000ms timer against Vitest's 5000ms default test timeout #1102 case, now ~0.16s instead of timing out),useRecipients(3 new), andsource-health— 22/22.Issues Resolved
Closes #1092
Closes #1111
Closes #1102
Closes #1112