Skip to content

Commit 657ada0

Browse files
test: address review feedback on Tier 5 demo smoke tests
- home/index.test.tsx: use renderWithProviders from test-utils - TransactionButton demo: use createMockWeb3Status for complete hook shape - TokenInput demo: fix useTokenInput mock to match the real hook return (amount/setAmount/amountError/balance/isLoadingBalance/selectedToken/setTokenSelected) and use renderWithProviders + createMockWeb3Status helpers
1 parent 5c9aa29 commit 657ada0

3 files changed

Lines changed: 21 additions & 37 deletions

File tree

src/components/pageComponents/home/Examples/demos/TokenInput/index.test.tsx

Lines changed: 14 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,11 @@
1-
import { ChakraProvider, createSystem, defaultConfig } from '@chakra-ui/react'
1+
import { createMockWeb3Status, renderWithProviders } from '@/src/test-utils'
22
import { QueryClient, QueryClientProvider } from '@tanstack/react-query'
3-
import { render, screen } from '@testing-library/react'
3+
import { screen } from '@testing-library/react'
44
import { describe, expect, it, vi } from 'vitest'
55
import tokenInput from './index'
66

7-
const system = createSystem(defaultConfig)
8-
97
vi.mock('@/src/hooks/useWeb3Status', () => ({
10-
useWeb3Status: vi.fn(() => ({
11-
isWalletConnected: false,
12-
})),
8+
useWeb3Status: vi.fn(() => createMockWeb3Status()),
139
}))
1410

1511
vi.mock('@/src/hooks/useTokenLists', () => ({
@@ -29,21 +25,23 @@ vi.mock('@/src/hooks/useTokenSearch', () => ({
2925

3026
vi.mock('@/src/components/sharedComponents/TokenInput/useTokenInput', () => ({
3127
useTokenInput: vi.fn(() => ({
32-
value: '',
33-
token: undefined,
34-
error: undefined,
35-
onChange: vi.fn(),
36-
onTokenSelect: vi.fn(),
28+
amount: 0n,
29+
setAmount: vi.fn(),
30+
amountError: null,
31+
setAmountError: vi.fn(),
32+
balance: 0n,
33+
balanceError: null,
34+
isLoadingBalance: false,
35+
selectedToken: undefined,
36+
setTokenSelected: vi.fn(),
3737
})),
3838
}))
3939

4040
describe('TokenInput demo', () => {
4141
it('renders the token input container', () => {
4242
const queryClient = new QueryClient({ defaultOptions: { queries: { retry: false } } })
43-
render(
44-
<QueryClientProvider client={queryClient}>
45-
<ChakraProvider value={system}>{tokenInput.demo}</ChakraProvider>
46-
</QueryClientProvider>,
43+
renderWithProviders(
44+
<QueryClientProvider client={queryClient}>{tokenInput.demo}</QueryClientProvider>,
4745
)
4846
// The mode dropdown should be visible
4947
expect(screen.getByText('Single token')).toBeDefined()
Lines changed: 4 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -1,18 +1,10 @@
1-
import { ChakraProvider, createSystem, defaultConfig } from '@chakra-ui/react'
2-
import { render, screen } from '@testing-library/react'
1+
import { createMockWeb3Status, renderWithProviders } from '@/src/test-utils'
2+
import { screen } from '@testing-library/react'
33
import { describe, expect, it, vi } from 'vitest'
44
import transactionButton from './index'
55

6-
const system = createSystem(defaultConfig)
7-
86
vi.mock('@/src/hooks/useWeb3Status', () => ({
9-
useWeb3Status: vi.fn(() => ({
10-
isWalletConnected: false,
11-
isWalletSynced: false,
12-
walletChainId: undefined,
13-
appChainId: 11155420,
14-
switchChain: vi.fn(),
15-
})),
7+
useWeb3Status: vi.fn(() => createMockWeb3Status({ appChainId: 11155420 })),
168
}))
179

1810
vi.mock('@/src/providers/Web3Provider', () => ({
@@ -21,7 +13,7 @@ vi.mock('@/src/providers/Web3Provider', () => ({
2113

2214
describe('TransactionButton demo', () => {
2315
it('renders connect wallet fallback when wallet not connected', () => {
24-
render(<ChakraProvider value={system}>{transactionButton.demo}</ChakraProvider>)
16+
renderWithProviders(transactionButton.demo)
2517
expect(screen.getByRole('button', { name: 'Connect Wallet' })).toBeDefined()
2618
})
2719
})

src/components/pageComponents/home/index.test.tsx

Lines changed: 3 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,8 @@
1-
import { ChakraProvider, createSystem, defaultConfig } from '@chakra-ui/react'
2-
import { render, screen } from '@testing-library/react'
1+
import { renderWithProviders } from '@/src/test-utils'
2+
import { screen } from '@testing-library/react'
33
import { describe, expect, it, vi } from 'vitest'
44
import { Home } from './index'
55

6-
const system = createSystem(defaultConfig)
7-
86
// Mock sub-components that pull in Web3 dependencies to keep this a pure structural test
97
vi.mock('@/src/components/pageComponents/home/Examples', () => ({
108
default: () => <section data-testid="examples">Examples</section>,
@@ -16,11 +14,7 @@ vi.mock('@/src/components/pageComponents/home/Welcome', () => ({
1614

1715
describe('Home', () => {
1816
it('renders Welcome and Examples sections', () => {
19-
render(
20-
<ChakraProvider value={system}>
21-
<Home />
22-
</ChakraProvider>,
23-
)
17+
renderWithProviders(<Home />)
2418
expect(screen.getByTestId('welcome')).toBeDefined()
2519
expect(screen.getByTestId('examples')).toBeDefined()
2620
})

0 commit comments

Comments
 (0)