Uh oh!
There was an error while loading. Please reload this page.
test(wallet): cover WalletAction status/disconnect + availableToStake - #379
Conversation
Important Review skippedAuto reviews are disabled on base/target branches other than the default branch. Please check the settings in the CodeRabbit UI or the ⚙️ Run configurationConfiguration used: defaults Review profile: CHILL Plan: Pro Run ID: You can disable this status message by setting the Use the checkbox below for a quick retry:
✨ Finishing Touches🧪 Generate unit tests (beta)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
Uh oh!
There was an error while loading. Please reload this page.
Closes concrete unit-test gaps on the browser-wallet surface (follow-up to #367).
What's added
tests/actions/walletStatusDisconnect.test.ts(10 tests) — mirrors the mocking style ofwalletConnect.test.ts(mockedsessionDescriptor+WalletSessionClient), fully hermetic.WalletAction.status: no descriptor →No active wallet session.+ exit 1; live connected → prints the status object (address/network/chainId/port/url/heartbeat/queuedTransactions) + exit 0; live-but-connecting →connecting+ exit 1; stale tab heartbeat → reportsstale(still exit 0); stale descriptor via dead pid and via failed ping → warn +removeDescriptor+ exit 1 (state never read).WalletAction.disconnect: no descriptor → message, no throw, no client; live daemon clean exit →shutdown()+removeDescriptor+ no SIGTERM; pid lingers → SIGTERM fallback then cleanup; racing exit (waitForPidGone false but pid already gone) → no SIGTERM, still cleans up.process.killspied so no real signal is sent.tests/libs/availableToStake.test.ts(4 tests) — direct coverage ofvestingAvailableToStake: revoked →0nwithgetBalancenever called; not-revoked → returnsgetBalance({address})asserted against the vesting address; zero-balance passthrough; failing read propagates (no silent 0).Scope
Primary deliverables A/B/C only. No Tier-1 D item added: the E2E design's Tier-1 candidates (resolver chain-mismatch/degrade/error modes,
sessionClient.waitForTxResulttimeout/tab-closed fail-fast, config-defaultresolveWalletMode) are already covered by existingsessionResolver/sessionClient/walletSessionspecs; the bridge result-store GC is a private method reachable only by driving the full HTTP loop, not a cheap standalone unit spec.Verification
npm run buildclean.npx vitest runfull suite green: 72 files, 747 tests passed (+14 from this PR).tsc --noEmitbaseline unchanged (32 pre-existing SDK-typing errors; zero in the new files).