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 c6dc5ae commit 982bf4d
Show file tree
Hide file tree
Showing 3 changed files with 15 additions and 74 deletions.
70 changes: 15 additions & 55 deletions packages/ui-components/src/__tests__/DeploymentSteps.test.ts
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
import { describe, it, expect, vi, beforeEach, type Mock } from 'vitest';
import { describe, it, expect, vi, beforeEach } from 'vitest';
import { render, screen, waitFor } from '@testing-library/svelte';
import DeploymentSteps from '../lib/components/deployment/DeploymentSteps.svelte';
import { DotrainOrderGui, type Scenario } from '@rainlanguage/orderbook/js_api';
Expand Down Expand Up @@ -630,20 +630,25 @@ const defaultProps: DeploymentStepsProps = {
handleDeployModal: vi.fn() as unknown as (args: DeployModalProps) => void,
handleDisclaimerModal: vi.fn() as unknown as (args: DisclaimerModalProps) => void,
settings: writable({} as ConfigSource),
handleUpdateGuiState: vi.fn()
handleUpdateGuiState: vi.fn(),
gui: {} as unknown as DotrainOrderGui
};

describe('DeploymentSteps', () => {
beforeEach(() => {
vi.clearAllMocks();
});

it('shows deployment details when provided', async () => {
(DotrainOrderGui.chooseDeployment as Mock).mockResolvedValue({
const setGui = (defaultProps: DeploymentStepsProps) => {
defaultProps.gui = {
areAllTokensSelected: vi.fn(),
getSelectTokens: () => [],
getTokenInfo: vi.fn(),
getNetworkKey: vi.fn()
});
} as unknown as DotrainOrderGui;
};

it('shows deployment details when provided', async () => {
setGui(defaultProps);

render(DeploymentSteps, { props: defaultProps });

Expand All @@ -653,12 +658,8 @@ describe('DeploymentSteps', () => {
});

it('shows select tokens section when tokens need to be selected', async () => {
const mockSelectTokens = ['token1', 'token2'];
(DotrainOrderGui.chooseDeployment as Mock).mockResolvedValue({
getSelectTokens: () => mockSelectTokens,
getTokenInfo: vi.fn(),
getNetworkKey: vi.fn()
});
setGui(defaultProps);
defaultProps.gui.getSelectTokens = vi.fn().mockReturnValue(['token1', 'token2']);

render(DeploymentSteps, { props: defaultProps });

Expand All @@ -670,36 +671,9 @@ describe('DeploymentSteps', () => {
});
});

it('shows error message when GUI initialization fails', async () => {
(DotrainOrderGui.chooseDeployment as Mock).mockRejectedValue(
new Error('Failed to initialize GUI')
);

render(DeploymentSteps, { props: defaultProps });

await waitFor(() => {
expect(screen.getByText('Error loading GUI')).toBeInTheDocument();
expect(screen.getByText('Failed to initialize GUI')).toBeInTheDocument();
});
});

it('shows deploy strategy button when all required fields are filled', async () => {
mockConnectedStore.mockSetSubscribeValue(true);
(DotrainOrderGui.chooseDeployment as Mock).mockResolvedValue({
getSelectTokens: () => [],
getCurrentDeployment: () => ({
deployment: {
order: {
inputs: [],
outputs: []
}
},
deposits: []
}),
getAllFieldDefinitions: () => [],
getTokenInfo: vi.fn(),
getNetworkKey: vi.fn()
});
setGui(defaultProps);

render(DeploymentSteps, { props: defaultProps });

Expand All @@ -710,21 +684,7 @@ describe('DeploymentSteps', () => {

it('shows connect wallet button when not connected', async () => {
mockConnectedStore.mockSetSubscribeValue(false);
(DotrainOrderGui.chooseDeployment as Mock).mockResolvedValue({
getSelectTokens: () => [],
getCurrentDeployment: () => ({
deployment: {
order: {
inputs: [],
outputs: []
}
},
deposits: []
}),
getAllFieldDefinitions: () => [],
getTokenInfo: vi.fn(),
getNetworkKey: vi.fn()
});
setGui(defaultProps);

render(DeploymentSteps, { props: defaultProps });

Expand Down
13 changes: 0 additions & 13 deletions packages/ui-components/src/__tests__/TokenIOInput.test.ts
Original file line number Diff line number Diff line change
Expand Up @@ -87,19 +87,6 @@ describe('TokenInput', () => {
expect(mockGui.setVaultId).toHaveBeenCalledWith(false, 0, 'vault2');
});

it('does not call setVaultId when gui is undefined', async () => {
const propsWithoutGui = {
...mockProps,
gui: undefined
} as unknown as TokenIOInputComponentProps;
const { getByPlaceholderText } = render(TokenIOInput, propsWithoutGui);
const input = getByPlaceholderText('Enter vault ID');

await fireEvent.change(input, { target: { value: 'newVault' } });

expect(mockGui.setVaultId).not.toHaveBeenCalled();
});

it('handles missing token info gracefully', () => {
const propsWithUnknownToken = {
...mockProps,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -50,12 +50,6 @@ describe('getDeploymentTransactionArgs', () => {
});

describe('input validation errors', () => {
it('should throw MISSING_GUI when GUI is null', async () => {
await expect(getDeploymentTransactionArgs(null, mockWagmiConfig)).rejects.toThrow(
AddOrderErrors.MISSING_GUI
);
});

it('should throw MISSING_CONFIG when wagmiConfig is undefined', async () => {
await expect(getDeploymentTransactionArgs(mockGui, undefined)).rejects.toThrow(
AddOrderErrors.MISSING_CONFIG
Expand Down

0 comments on commit 982bf4d

Please sign in to comment.