Skip to content

Commit

Permalink
update tests
Browse files Browse the repository at this point in the history
  • Loading branch information
findolor committed Feb 20, 2025
1 parent c83b1db commit 795a04f
Show file tree
Hide file tree
Showing 2 changed files with 125 additions and 0 deletions.
112 changes: 112 additions & 0 deletions packages/ui-components/src/__tests__/DeploymentSteps.test.ts
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@ import { writable } from 'svelte/store';
import type { AppKit } from '@reown/appkit';
import type { ConfigSource } from '../lib/typeshare/config';
import type { DeployModalProps, DisclaimerModalProps } from '../lib/types/modal';
import userEvent from '@testing-library/user-event';

const { mockWagmiConfigStore, mockConnectedStore } = await vi.hoisted(
() => import('../lib/__mocks__/stores')
Expand Down Expand Up @@ -732,4 +733,115 @@ describe('DeploymentSteps', () => {
expect(screen.getByText('Connect Wallet')).toBeInTheDocument();
});
});

it('refreshes field descriptions when tokens change', async () => {
const mockSelectTokens = [
{ key: 'token1', name: 'Token 1', description: undefined },
{ key: 'token2', name: 'Token 2', description: undefined }
];
const getAllTokenInfos = vi.fn();
const getAllFieldDefinitions = vi.fn();
const getAllDepositFields = vi.fn();
const getTokenInfo = vi.fn();
(DotrainOrderGui.chooseDeployment as Mock).mockResolvedValue({
getSelectTokens: () => mockSelectTokens,
getTokenInfo,
getNetworkKey: vi.fn(),
getAllTokenInfos: getAllTokenInfos.mockReturnValue(
Promise.resolve([
{
address: '0x1',
decimals: 18,
name: 'Token 1',
symbol: 'TKN1'
},
{
address: '0x2',
decimals: 18,
name: 'Token 2',
symbol: 'TKN2'
}
])
),
getAllFieldDefinitions: getAllFieldDefinitions.mockReturnValue([]),
getAllDepositFields: getAllDepositFields.mockReturnValue(Promise.resolve([])),
isSelectTokenSet: () => false,
saveSelectToken: vi.fn(),
areAllTokensSelected: () => true,
hasAnyDeposit: vi.fn(),
hasAnyVaultId: vi.fn(),
getCurrentDeployment: () => ({
deployment: {
order: {
inputs: [],
outputs: []
}
},
deposits: []
})
});

const user = userEvent.setup();
render(DeploymentSteps, { props: defaultProps });

await waitFor(() => {
expect(screen.getByText('Select Tokens')).toBeInTheDocument();
expect(screen.getByText('Token 1')).toBeInTheDocument();
expect(screen.getByText('Token 2')).toBeInTheDocument();
});

let selectTokenInput = screen.getAllByRole('textbox')[0];
getTokenInfo.mockResolvedValue({
address: '0x1',
decimals: 18,
name: 'Token 1',
symbol: 'TKN1'
});
await user.type(selectTokenInput, '0x1');

const selectTokenOutput = screen.getAllByRole('textbox')[1];
getTokenInfo.mockResolvedValue({
address: '0x2',
decimals: 18,
name: 'Token 2',
symbol: 'TKN2'
});
await user.type(selectTokenOutput, '0x2');

await waitFor(() => {
expect(getAllTokenInfos).toHaveBeenCalled();
expect(getAllFieldDefinitions).toHaveBeenCalled();
});

selectTokenInput = screen.getAllByRole('textbox')[0];
getTokenInfo.mockResolvedValue({
address: '0x3',
decimals: 18,
name: 'Token 3',
symbol: 'TKN3'
});
await user.type(selectTokenInput, '0x3');

getAllTokenInfos.mockReturnValue(
Promise.resolve([
{
address: '0x3',
decimals: 18,
name: 'Token 3',
symbol: 'TKN3'
},
{
address: '0x2',
decimals: 18,
name: 'Token 2',
symbol: 'TKN2'
}
])
);

await waitFor(() => {
expect(getAllTokenInfos).toHaveBeenCalled();
expect(getAllFieldDefinitions).toHaveBeenCalled();
});
});
});
13 changes: 13 additions & 0 deletions packages/ui-components/src/__tests__/SelectToken.test.ts
Original file line number Diff line number Diff line change
Expand Up @@ -131,4 +131,17 @@ describe('SelectToken', () => {
expect(mockStateUpdateCallback).toHaveBeenCalledTimes(2);
});
});

it('calls onSelectTokenSelect after input changes', async () => {
const user = userEvent.setup();
const { getByRole } = render(SelectToken, mockProps);
const input = getByRole('textbox');

await userEvent.clear(input);
await user.paste('0x456');

await waitFor(() => {
expect(mockProps.onSelectTokenSelect).toHaveBeenCalled();
});
});
});

0 comments on commit 795a04f

Please sign in to comment.