Skip to content
Merged
Show file tree
Hide file tree
Changes from 1 commit
Commits
Show all changes
200 commits
Select commit Hold shift + click to select a range
d107236
feat(#280): Implement design tokens mapping in loading_spinner_skeleton
Great-O Aug 25, 2026
4cb5dfa
feat(#262): add WalletBadge component and RTL unit tests
Great-O Aug 25, 2026
2f232d7
feat(#257): render validation messages and alerts inside wallet_badge
Great-O Aug 26, 2026
d18f57b
feat(wallet_badge): build descriptive placeholder UI elements for emp…
Great-O Aug 26, 2026
7b9d26b
fix: toast on signer rejection
Rayhab2000 Aug 26, 2026
49138a7
fix: format transaction signer console errors
Rayhab2000 Aug 26, 2026
ea2c2ec
feat: implement descriptive empty state UI for dashboard jobs list
vicajohn Aug 27, 2026
b288113
feat: implement responsive design for dashboard across mobile, tablet…
vicajohn Aug 27, 2026
bf4743b
feat: implement interactive states with hover, focus, and disabled st…
vicajohn Aug 27, 2026
bbab220
feat: implement dashboard accessibility compliance (ARIA, keyboard na…
vicajohn Aug 27, 2026
bf10b56
Merge branch 'main' into feat/wallet-badge-empty-placeholder
Great-O Aug 27, 2026
be9b46a
Merge branch 'main' into feat/issue-257-wallet-badge-validation
Great-O Aug 27, 2026
817e081
Merge branch 'main' into feat/issue-262-wallet-badge-tests
Great-O Aug 27, 2026
b77752f
Merge branch 'main' into issue-280-design-tokens-loading-skeleton
Great-O Aug 27, 2026
e8faf27
Merge branch 'main' into feat/wallet-badge-empty-placeholder
godamongstmen897 Aug 27, 2026
75fc802
Merge branch 'main' into fix/215-transaction-signer-rejection
godamongstmen897 Aug 27, 2026
dd99afd
faet:implement CSS micro-animations on dashboard_list elements
Aug 27, 2026
6a29a1f
feat: add accessible DarkModeSwitcher with ARIA compliance (closes #310)
SamuelStave Aug 28, 2026
38422cf
feat: add DarkModeSwitcher with premium interactive states (closes #311)
SamuelStave Aug 28, 2026
d7efbe9
feat: add DarkModeSwitcher with empty state placeholder (closes #313)
SamuelStave Aug 28, 2026
92aae61
feat: add DarkModeSwitcher base component for Storybook (closes #318)
SamuelStave Aug 28, 2026
0db4ad5
test: add a11y tests for DarkModeSwitcher (closes #310)
SamuelStave Aug 28, 2026
2cc6b56
test: add interactive states tests for DarkModeSwitcher (closes #311)
SamuelStave Aug 28, 2026
a0c22a1
test: add empty state tests for DarkModeSwitcher (closes #313)
SamuelStave Aug 28, 2026
32be981
feat: add Storybook stories for DarkModeSwitcher (closes #318)
SamuelStave Aug 28, 2026
0f77e29
test: add storybook verification tests (closes #318)
SamuelStave Aug 28, 2026
961f8af
Merge branch 'main' into feat/issue-257-wallet-badge-validation
Great-O Aug 28, 2026
da9b279
fix(ci): regenerate package-lock.json so npm ci succeeds
Great-O Aug 28, 2026
fc40e88
Merge branch 'main' into feat/issue-262-wallet-badge-tests
Great-O Aug 28, 2026
57f5a4b
fix(ci): regenerate package-lock.json so npm ci succeeds
Great-O Aug 28, 2026
f9d11bf
fix(ci): regenerate package-lock.json so npm ci succeeds
Great-O Aug 28, 2026
4f65f52
fix(ci): regenerate package-lock.json so npm ci succeeds
Great-O Aug 28, 2026
73596ce
feat: add dark_mode_switcher component with RTL unit tests
Max-Owolabi Aug 28, 2026
ded9e6c
feat: add notification_bell with a11y compliance and validation alerts
Max-Owolabi Aug 28, 2026
08940bd
feat(loading-skeleton): responsive sizing across mobile/tablet/desktop
otsimaofficial Aug 28, 2026
2800c07
feat(loading-skeleton): CSS micro-animations on mount and pulse stagger
otsimaofficial Aug 28, 2026
cbe6f32
feat(dashboard): descriptive empty-state view for the job list
otsimaofficial Aug 28, 2026
23ac677
feat(loading-skeleton): constrain height and preserve clickability on…
otsimaofficial Aug 28, 2026
7a0a6b5
fix(signature-timeout-alert): derive parse message with useMemo inste…
otsimaofficial Aug 29, 2026
3514da8
feat(ui): add interactive hover focus and disabled states to loading …
iamTissan Aug 29, 2026
1075c45
Dispute Raise ModaL
She-ge Aug 29, 2026
7044573
feat: enforce wallet disconnect timeout bounds
She-ge Aug 29, 2026
a9573a6
feat: add Storybook interface mocks for notification_bell [closes #328]
Max-Owolabi Aug 29, 2026
01d493b
test(network_sync_checker): add RTL assertions and repair suite load
kingeligma Aug 29, 2026
5e5029b
feat: disconnect handler warnings/spinner and responsive dispute modal
Aug 29, 2026
dc62fe7
Write React Testing Library assertions for wallet disconnect handler …
madisonsc52-del Aug 29, 2026
96f7436
[#11] feat: add notification badge for milestones approaching auto-re…
She-ge Aug 29, 2026
3a32a16
fix(lint): remove unused imports/vars and refactor effect setState
Great-O Aug 30, 2026
33ee5f1
fix(lint): remove unused imports/vars and refactor effect setState
Great-O Aug 30, 2026
dd45be4
fix(lint): remove unused imports/vars and refactor effect setState
Great-O Aug 30, 2026
ffb1bdc
fix(lint): remove unused imports/vars and refactor effect setState
Great-O Aug 30, 2026
8463f9b
feat: add wallet_disconnect_handler component tests and fix lint error
madisonsc52-del Aug 30, 2026
ed5fb65
fix: move useMemo after activeTransactionXdr declaration
madisonsc52-del Aug 30, 2026
eccb27a
fix(#259): wallet badge mobile viewport overlay/clickability
udeachudivine-spec Aug 30, 2026
8e6251d
fix(#241): structured console errors and transaction debug tracking i…
udeachudivine-spec Aug 30, 2026
37510f4
feat: add network mismatch warnings to TransactionSigner component (#…
godamongstmen897 Aug 27, 2026
620d756
test(signature_timeout_alert): attach rejection handlers before advan…
kingeligma Aug 30, 2026
a4e0b9b
Implement secure persistent caching for active keys in wallet_disconn…
DavisVT Aug 30, 2026
b1fc04f
fix(ci): resolve freighter-api ESM interop, fake XDR fixtures, and un…
Aug 30, 2026
22149bf
test: add React Testing Library tests for LoadingSkeleton and ButtonS…
melanindebbie Aug 31, 2026
0eb54da
Implement design tokens mapping in notification_bell (#327)
DavisVT Aug 31, 2026
89c12bb
Add dispute_raise_modal with validation messages and alerts (#334)
DavisVT Aug 31, 2026
49b03fb
Merge pull request #285 from Great-O/issue-280-design-tokens-loading-…
godamongstmen897 Aug 31, 2026
845cbe4
Merge pull request #286 from Great-O/feat/issue-262-wallet-badge-tests
godamongstmen897 Aug 31, 2026
44d15bc
Merge branch 'main' into feat/issue-257-wallet-badge-validation
godamongstmen897 Aug 31, 2026
ee55b44
Merge pull request #288 from Great-O/feat/issue-257-wallet-badge-vali…
godamongstmen897 Aug 31, 2026
cfe9fe2
Merge pull request #290 from Tobore2000/fix/215-transaction-signer-re…
godamongstmen897 Aug 31, 2026
5f9cc00
Merge pull request #292 from Rayhab2000/fix/221-transaction-signer-co…
godamongstmen897 Aug 31, 2026
3b32235
fix: restore a working CI baseline on main
godamongstmen897 Aug 31, 2026
3e49a6a
Merge remote-tracking branch 'pr/353' into fix/frontend-baseline
godamongstmen897 Aug 31, 2026
d03bfbe
fix(tests): attach rejection handlers before advancing timers
godamongstmen897 Aug 31, 2026
cd1848a
Merge pull request #376 from Goldii-locks/fix/frontend-baseline
godamongstmen897 Aug 31, 2026
3d8e0b0
Merge branch 'main' into feat/micro-animations
godamongstmen897 Aug 31, 2026
fa08698
Merge branch 'main' into feat/dashboard-empty-state-ui
godamongstmen897 Aug 31, 2026
1ac45f7
Merge branch 'main' into feat/dashboard-responsive-design
godamongstmen897 Aug 31, 2026
b35fa6a
Merge branch 'main' into feat/dashboard-interactive-states
godamongstmen897 Aug 31, 2026
a9d3317
Merge branch 'main' into feat/dashboard-accessibility-compliance
godamongstmen897 Aug 31, 2026
3ea42cc
Merge branch 'main' into feat/216-transaction-signer-network-mismatch
godamongstmen897 Aug 31, 2026
5467609
Merge branch 'main' into fix/dark-mode-a11y-310
godamongstmen897 Aug 31, 2026
cc3fa7c
Merge branch 'main' into feat/dark-mode-interactive-states-311
godamongstmen897 Aug 31, 2026
c3e9790
Merge branch 'main' into feat/dark-mode-empty-states-313
godamongstmen897 Aug 31, 2026
0023cd2
Merge branch 'main' into feat/dark-mode-storybook-318
godamongstmen897 Aug 31, 2026
ac6d85a
Merge branch 'main' into feat/dark-mode-switcher-tests
godamongstmen897 Aug 31, 2026
fa448bf
Merge branch 'main' into feat/notification-bell-validation-a11y
godamongstmen897 Aug 31, 2026
302ff12
Merge branch 'main' into feat/loading-skeleton-empty-state-276
godamongstmen897 Aug 31, 2026
27cf1db
Merge branch 'main' into feat/337-dispute-raise-modal-design-tokens
godamongstmen897 Aug 31, 2026
eaf3307
Merge branch 'main' into feat/338-dispute-raise-modal-stories
godamongstmen897 Aug 31, 2026
14f5293
Merge branch 'main' into feat/234-wallet-disconnect-timeout-bounds
godamongstmen897 Aug 31, 2026
df40fd0
Merge branch 'main' into feat/disconnect-warnings-and-dispute-modal-r…
godamongstmen897 Aug 31, 2026
8188cca
Merge branch 'main' into feat/11-milestone-deadline-badge
godamongstmen897 Aug 31, 2026
e9e099d
Merge branch 'main' into feature/237-wallet-disconnect-persistent-cac…
godamongstmen897 Aug 31, 2026
6c29b1b
Merge branch 'main' into test/282-loading-spinner-skeleton
godamongstmen897 Aug 31, 2026
b115e4e
Merge branch 'main' into feature/notification-bell-design-tokens
godamongstmen897 Aug 31, 2026
1aef19e
Merge branch 'main' into feature/dispute-raise-modal-validation
godamongstmen897 Aug 31, 2026
ee45031
Merge pull request #309 from ayaoba24/feat/216-transaction-signer-net…
godamongstmen897 Aug 31, 2026
b030941
Merge pull request #343 from SamuelStave/fix/dark-mode-a11y-310
godamongstmen897 Aug 31, 2026
dee3740
Merge pull request #345 from SamuelStave/feat/dark-mode-empty-states-313
godamongstmen897 Aug 31, 2026
b4c747f
Merge pull request #347 from Max-Owolabi/feat/dark-mode-switcher-tests
godamongstmen897 Aug 31, 2026
bed6da3
Merge pull request #348 from Max-Owolabi/feat/notification-bell-valid…
godamongstmen897 Aug 31, 2026
de40d73
Merge pull request #350 from otsimaofficial/feat/loading-skeleton-emp…
godamongstmen897 Aug 31, 2026
fef8dc4
Merge pull request #362 from jeremiahelishaa180-commits/feat/disconne…
godamongstmen897 Aug 31, 2026
fd7ffcd
Merge pull request #374 from DavisVT/feature/notification-bell-design…
godamongstmen897 Aug 31, 2026
20b3e8c
Merge branch 'main' into feat/micro-animations
godamongstmen897 Aug 31, 2026
6e49283
Merge branch 'main' into feat/dark-mode-interactive-states-311
godamongstmen897 Aug 31, 2026
0a8e90c
Merge branch 'main' into feat/dark-mode-storybook-318
godamongstmen897 Aug 31, 2026
389e65a
Merge branch 'main' into feat/337-dispute-raise-modal-design-tokens
godamongstmen897 Aug 31, 2026
5f24976
Merge branch 'main' into test/282-loading-spinner-skeleton
godamongstmen897 Aug 31, 2026
edf7c94
feat: Add gas estimation warning banners to network_sync_checker
Biokes Aug 31, 2026
6f30aa4
fix: relax interactive state tests to match actual component classes
SamuelStave Aug 31, 2026
b577cc5
fix: make Storybook null handling type-safe for type check
SamuelStave Aug 31, 2026
80d1206
test(dashboard): cover the micro-animations this PR adds
godamongstmen897 Aug 31, 2026
39c375b
Merge branch 'main' into Write-React-Testing-Library-assertions-for-w…
madisonsc52-del Aug 31, 2026
081fc81
Merge pull request #341 from mathstickz/feat/micro-animations
godamongstmen897 Aug 31, 2026
3829359
fix: remove false-positive opacity check (disabled:opacity-50 contain…
SamuelStave Aug 31, 2026
79709bf
Merge branch 'main' into feat/dark-mode-interactive-states-311
godamongstmen897 Aug 31, 2026
275bbc1
Merge branch 'main' into feat/dark-mode-storybook-318
godamongstmen897 Aug 31, 2026
e9d4594
Merge branch 'main' into feat/337-dispute-raise-modal-design-tokens
godamongstmen897 Aug 31, 2026
077e977
Merge branch 'main' into Write-React-Testing-Library-assertions-for-w…
godamongstmen897 Aug 31, 2026
cb13fdf
Merge branch 'main' into test/282-loading-spinner-skeleton
godamongstmen897 Aug 31, 2026
5e0b96f
Merge branch 'main' into feature/network-sync-gas-warning
godamongstmen897 Aug 31, 2026
d1b30b8
Merge pull request #344 from SamuelStave/feat/dark-mode-interactive-s…
godamongstmen897 Aug 31, 2026
5717cc3
fix: remove @storybook/test import (module not found)
SamuelStave Aug 31, 2026
ac8bdf6
Merge remote-tracking branch 'pr/377' into work-377
godamongstmen897 Aug 31, 2026
aecc8f8
fix: avoid JSX Story type error
SamuelStave Aug 31, 2026
bbbd845
fix: correct container mock for type check
SamuelStave Aug 31, 2026
0c45f1b
test(network-sync): use vitest globals and spies
godamongstmen897 Aug 31, 2026
c1d0526
Merge remote-tracking branch 'pr/377' into work-377
godamongstmen897 Aug 31, 2026
4541d17
Merge branch 'main' into feat/dark-mode-storybook-318
godamongstmen897 Aug 31, 2026
69f8b10
Merge branch 'main' into feat/337-dispute-raise-modal-design-tokens
godamongstmen897 Aug 31, 2026
e82bb02
Merge branch 'main' into Write-React-Testing-Library-assertions-for-w…
godamongstmen897 Aug 31, 2026
ae3a266
Merge branch 'main' into test/282-loading-spinner-skeleton
godamongstmen897 Aug 31, 2026
79bf438
Merge branch 'main' into feature/network-sync-gas-warning
godamongstmen897 Aug 31, 2026
605b648
Merge pull request #377 from Biokes/feature/network-sync-gas-warning
godamongstmen897 Aug 31, 2026
b725f38
fix: rewrite stories test to follow wallet-badge pattern (lasting sol…
SamuelStave Aug 31, 2026
ec9389f
feat(dashboard): add the EmptyStateCard this PR renders
godamongstmen897 Aug 31, 2026
1ac1f10
Merge branch 'main' into feat/dark-mode-storybook-318
godamongstmen897 Aug 31, 2026
774c868
Merge branch 'main' into feat/337-dispute-raise-modal-design-tokens
godamongstmen897 Aug 31, 2026
859886f
Merge branch 'main' into Write-React-Testing-Library-assertions-for-w…
godamongstmen897 Aug 31, 2026
f7b0afc
Merge branch 'main' into test/282-loading-spinner-skeleton
godamongstmen897 Aug 31, 2026
a18f3d0
Merge pull request #303 from vicajohn/feat/dashboard-empty-state-ui
godamongstmen897 Aug 31, 2026
98ff6d5
Merge pull request #346 from SamuelStave/feat/dark-mode-storybook-318
godamongstmen897 Aug 31, 2026
4c13459
Merge branch 'refs/heads/pr/364' into work-364
godamongstmen897 Aug 31, 2026
e26b7b8
Merge main into #364 and drop duplicated conflict residue
godamongstmen897 Aug 31, 2026
4ddb097
Merge pull request #364 from madisonsc52-del/Write-React-Testing-Libr…
godamongstmen897 Aug 31, 2026
5269ed2
Merge branch 'refs/heads/pr/355' into work-355
godamongstmen897 Aug 31, 2026
e7a3ebf
Merge main into #355 and render the surfaces its assertions target
godamongstmen897 Aug 31, 2026
944aa3d
Merge pull request #355 from She-ge/feat/337-dispute-raise-modal-desi…
godamongstmen897 Aug 31, 2026
2ed1c9d
Merge branch 'refs/heads/pr/372' into work-372
godamongstmen897 Aug 31, 2026
31f7a91
Merge main into #372 and retarget assertions at the design tokens
godamongstmen897 Aug 31, 2026
a80f530
Merge pull request #372 from melanindebbie/test/282-loading-spinner-s…
godamongstmen897 Aug 31, 2026
ea95181
Merge main into #349 and apply responsive sizing over the design tokens
godamongstmen897 Aug 31, 2026
97efdce
Merge pull request #349 from otsimaofficial/feat/loading-skeleton-res…
godamongstmen897 Aug 31, 2026
40304db
Merge main into #351 and apply the mount/stagger animations
godamongstmen897 Aug 31, 2026
356ed69
Merge pull request #351 from otsimaofficial/feat/loading-skeleton-ani…
godamongstmen897 Aug 31, 2026
29ad57c
Merge main into #352 and add the mobile height cap
godamongstmen897 Aug 31, 2026
204e882
Merge pull request #352 from otsimaofficial/feat/loading-skeleton-mob…
godamongstmen897 Aug 31, 2026
b72ea18
Merge main into #354 and add the interactive/disabled states
godamongstmen897 Aug 31, 2026
5b761d3
Merge pull request #354 from iamTissan/feat/loading-spinner-skeleton-…
godamongstmen897 Aug 31, 2026
4034f48
fix(#322): add responsive sizing to notification_bell
zipporahgeorge88-oss Aug 31, 2026
799df70
fix(#316): add mobile overlay wrapper for dark_mode_switcher
zipporahgeorge88-oss Aug 31, 2026
fa7676c
fix(#312): add responsive sizing to dark_mode_switcher
zipporahgeorge88-oss Aug 31, 2026
5964173
Merge main into #304, combining responsive padding with the row anima…
godamongstmen897 Aug 31, 2026
0986e9c
Merge pull request #304 from vicajohn/feat/dashboard-responsive-design
godamongstmen897 Aug 31, 2026
b0d138b
Merge main into #305, unioning the job row's interaction classes
godamongstmen897 Aug 31, 2026
f794522
Merge pull request #305 from vicajohn/feat/dashboard-interactive-states
godamongstmen897 Aug 31, 2026
24b0165
fix(#322): correct bell glyph encoding for responsive notification_bell
zipporahgeorge88-oss Aug 31, 2026
3f29e72
Merge pull request #380 from zipporahgeorge88-oss/fix/dark-switcher-m…
godamongstmen897 Aug 31, 2026
85df758
Merge main into #306 and retarget queries at the new ARIA semantics
godamongstmen897 Aug 31, 2026
474d18e
feat: add Storybook stories for LoadingSkeleton (closes #281)
esthertitilayo-dev Aug 31, 2026
4b50404
Merge pull request #306 from vicajohn/feat/dashboard-accessibility-co…
godamongstmen897 Aug 31, 2026
cea8fd6
Merge pull request #378 from zipporahgeorge88-oss/fix/notification-be…
godamongstmen897 Aug 31, 2026
19e97d1
Merge branch 'main' into fix/dark-switcher-responsive
godamongstmen897 Aug 31, 2026
5f2a333
Merge main into #357, keeping the loader wrapper around the timeout call
godamongstmen897 Aug 31, 2026
a2bddfd
Merge pull request #357 from She-ge/feat/234-wallet-disconnect-timeou…
godamongstmen897 Aug 31, 2026
96b0bfe
Merge main into #366
godamongstmen897 Aug 31, 2026
05a7a8e
Merge pull request #366 from She-ge/feat/11-milestone-deadline-badge
godamongstmen897 Aug 31, 2026
cf2870b
Merge main into #371 and make the active-key sanitizing reachable
godamongstmen897 Aug 31, 2026
7f1d527
Merge pull request #371 from DavisVT/feature/237-wallet-disconnect-pe…
godamongstmen897 Aug 31, 2026
d6fac62
Merge main into #370 and settle the logging levels across suites
godamongstmen897 Aug 31, 2026
08e9ec6
Merge pull request #370 from udeachudivine-spec/fix/issue-241-wallet-…
godamongstmen897 Aug 31, 2026
f212b53
chore: re-trigger CI for PR #379
zipporahgeorge88-oss Aug 31, 2026
5ca2e46
chore: update README for design tokens
zipporahgeorge88-oss Aug 31, 2026
176a7ea
Merge main into #375 and extend the existing modal for its contract
godamongstmen897 Aug 31, 2026
8812eb1
Merge pull request #375 from DavisVT/feature/dispute-raise-modal-vali…
godamongstmen897 Aug 31, 2026
d213d74
Merge branch 'main' into feat/wallet-badge-empty-placeholder
Great-O Aug 31, 2026
8e0773b
Merge branch 'main' into fix/dark-switcher-design-tokens
godamongstmen897 Aug 31, 2026
49fdc90
Merge branch 'main' into fix/dark-switcher-responsive
godamongstmen897 Aug 31, 2026
d5b375a
Merge pull request #379 from zipporahgeorge88-oss/fix/dark-switcher-d…
godamongstmen897 Aug 31, 2026
810c1f5
Merge pull request #381 from zipporahgeorge88-oss/fix/dark-switcher-r…
godamongstmen897 Aug 31, 2026
323976a
Merge branch 'main' into feat/loading-skeleton-stories
godamongstmen897 Aug 31, 2026
0247d0c
chore: retrigger CI
Great-O Aug 31, 2026
eb9b7a7
Merge pull request #382 from esthertitilayo-dev/feat/loading-skeleton…
godamongstmen897 Aug 31, 2026
73455e4
Merge main into #356
godamongstmen897 Aug 31, 2026
c11e364
Merge pull request #356 from She-ge/feat/338-dispute-raise-modal-stories
godamongstmen897 Aug 31, 2026
37d15ec
Merge branch 'refs/heads/pr/289' into work-289
godamongstmen897 Aug 31, 2026
c9265cf
Merge main into #289 and fold its placeholder work into the shared badge
godamongstmen897 Aug 31, 2026
396c3e0
Merge branch 'pr289-fresh' into work-289
godamongstmen897 Aug 31, 2026
f596ee4
Restore main's package-lock.json on #289
godamongstmen897 Aug 31, 2026
cf9eb82
Merge pull request #289 from Great-O/feat/wallet-badge-empty-placeholder
godamongstmen897 Aug 31, 2026
2e943ab
Merge main into #358, keeping the shared refactors main already carries
godamongstmen897 Aug 31, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
33 changes: 33 additions & 0 deletions __tests__/freighter_connector.component.test.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,39 @@ import {
HIGH_FEE_THRESHOLD_STROOPS,
} from "@/app/lib/freighter_connector";

// WalletProvider pulls @creit.tech/stellar-wallets-kit at module scope, whose
// bundled UMD dependencies are not Node-ESM-importable. This component suite
// renders FreighterGasWarningBanner inside FreighterConnector via
// GasEstimationWarningBanner, which only reads `gasWarning` from the wallet
// context — stubbing `useWallet` with the real provider's default shape keeps
// the real freighter_connector logic under test.
const walletContextMock = vi.hoisted(() => ({
useWallet: () => ({
address: null,
assembleMultiSigTransaction: vi.fn(async () => ({
uniqueSigners: 0,
splitsValidated: 0,
})),
connect: vi.fn(async () => {}),
disconnect: vi.fn(),
isConnecting: false,
networkMismatchMessage: null,
selectedWalletId: "freighter",
setSelectedWalletId: vi.fn(),
signTransaction: vi.fn(async () => ""),
signatureTimeoutError: null,
signatureTimeoutXdr: null,
clearSignatureTimeout: vi.fn(),
simulationResult: null,
setSimulationResult: vi.fn(),
gasWarning: null,
}),
}));

vi.mock("@/app/context/WalletContext", () => ({
useWallet: walletContextMock.useWallet,
}));

// ---------------------------------------------------------------------------
// #112 — React Testing Library assertions for freighter_connector
// ---------------------------------------------------------------------------
Expand Down
27 changes: 23 additions & 4 deletions __tests__/freighter_multisig_hook.test.ts
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
import { act, renderHook } from "@testing-library/react";

Check warning on line 1 in __tests__/freighter_multisig_hook.test.ts

View workflow job for this annotation

GitHub Actions / build

'act' is defined but never used
import { describe, expect, it, vi } from "vitest";
import { Account, Keypair, Networks, Operation, TransactionBuilder } from "@stellar/stellar-sdk";
import { useFreighterMultiSigAssembly } from "@/app/hooks/useFreighterMultiSigAssembly";
import { WalletMultiSigStructureError } from "@/app/lib/wallet_state_context";
import {
Expand All @@ -13,13 +14,31 @@

const TEST_NETWORK_PASSPHRASE = "Test SDF Network ; September 2015";

// The hook validates XDR against a real @stellar/stellar-sdk parser, so the
// fixtures must be genuine signed transaction envelopes rather than arbitrary
// bytes. Building a real envelope (and signing it so `signatures` is
// populated) exercises the parser instead of failing it.
function buildSignedEnvelope(): string {
const keypair = Keypair.random();
const account = new Account(keypair.publicKey(), "0");
const transaction = new TransactionBuilder(account, {
fee: "100",
networkPassphrase: Networks.TESTNET,
})
.addOperation(Operation.bumpSequence({ bumpTo: "0" }))
.setTimeout(30)
.build();
transaction.sign(keypair);
return transaction.toEnvelope().toXDR("base64");
}

describe("useFreighterMultiSigAssembly hook (#109)", () => {
it("parseStructure parses a well-formed envelope without errors", () => {
const { result } = renderHook(() =>
useFreighterMultiSigAssembly(TEST_NETWORK_PASSPHRASE)
);

const xdr = toBase64("a".repeat(200));
const xdr = buildSignedEnvelope();
const shape = result.current.parseStructure(xdr);

expect(shape.baseXdr).toBe(xdr);
Expand All @@ -42,7 +61,7 @@
useFreighterMultiSigAssembly(TEST_NETWORK_PASSPHRASE)
);

const xdr = toBase64("a".repeat(200));
const xdr = buildSignedEnvelope();
const tx = result.current.prepareTransaction(xdr);
expect(tx).toBeDefined();
});
Expand All @@ -62,7 +81,7 @@
useFreighterMultiSigAssembly(TEST_NETWORK_PASSPHRASE)
);

const xdr = toBase64("b".repeat(200));
const xdr = buildSignedEnvelope();
const tx = result.current.prepareTransaction(xdr);
const serialized = result.current.serializeTransaction(tx);
expect(typeof serialized).toBe("string");
Expand All @@ -74,7 +93,7 @@
useFreighterMultiSigAssembly(TEST_NETWORK_PASSPHRASE)
);

const xdr = toBase64("c".repeat(200));
const xdr = buildSignedEnvelope();
const signFn = vi.fn(async () => "signed-xdr");

const signed = await result.current.signTransaction(xdr, signFn);
Expand Down
Loading
Loading