From 982bf4dee5b5a8cbdce8ae75dc74bcd0162fc5f1 Mon Sep 17 00:00:00 2001 From: findolor Date: Thu, 20 Feb 2025 12:22:11 +0300 Subject: [PATCH] update tests --- .../src/__tests__/DeploymentSteps.test.ts | 70 ++++--------------- .../src/__tests__/TokenIOInput.test.ts | 13 ---- .../getDeploymentTransactionArgs.test.ts | 6 -- 3 files changed, 15 insertions(+), 74 deletions(-) diff --git a/packages/ui-components/src/__tests__/DeploymentSteps.test.ts b/packages/ui-components/src/__tests__/DeploymentSteps.test.ts index 59638aca4..f45a5b96a 100644 --- a/packages/ui-components/src/__tests__/DeploymentSteps.test.ts +++ b/packages/ui-components/src/__tests__/DeploymentSteps.test.ts @@ -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'; @@ -630,7 +630,8 @@ 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', () => { @@ -638,12 +639,16 @@ describe('DeploymentSteps', () => { 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 }); @@ -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 }); @@ -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 }); @@ -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 }); diff --git a/packages/ui-components/src/__tests__/TokenIOInput.test.ts b/packages/ui-components/src/__tests__/TokenIOInput.test.ts index 523b855ef..664e170c6 100644 --- a/packages/ui-components/src/__tests__/TokenIOInput.test.ts +++ b/packages/ui-components/src/__tests__/TokenIOInput.test.ts @@ -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, diff --git a/packages/ui-components/src/__tests__/getDeploymentTransactionArgs.test.ts b/packages/ui-components/src/__tests__/getDeploymentTransactionArgs.test.ts index 29144a8a8..5e3663a37 100644 --- a/packages/ui-components/src/__tests__/getDeploymentTransactionArgs.test.ts +++ b/packages/ui-components/src/__tests__/getDeploymentTransactionArgs.test.ts @@ -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