From 1d6076d2561cb62fc08d2cd005246a79a6310632 Mon Sep 17 00:00:00 2001 From: highonhopium Date: Sat, 15 Feb 2025 20:04:24 +0000 Subject: [PATCH] tests --- .../src/__tests__/DisclaimerModal.test.ts | 78 ++----------------- .../deployment/DisclaimerModal.svelte | 2 +- .../webapp/src/lib/components/Sidebar.svelte | 2 +- 3 files changed, 7 insertions(+), 75 deletions(-) diff --git a/packages/ui-components/src/__tests__/DisclaimerModal.test.ts b/packages/ui-components/src/__tests__/DisclaimerModal.test.ts index 2f581b297..4c6387321 100644 --- a/packages/ui-components/src/__tests__/DisclaimerModal.test.ts +++ b/packages/ui-components/src/__tests__/DisclaimerModal.test.ts @@ -1,93 +1,25 @@ -import { describe, it, expect, vi, beforeEach, type Mock } from 'vitest'; +import { describe, it, expect, vi, beforeEach } from 'vitest'; import { render, screen, fireEvent } from '@testing-library/svelte'; import DisclaimerModal from '../lib/components/deployment/DisclaimerModal.svelte'; -import { getDeploymentTransactionArgs } from '../lib/components/deployment/getDeploymentTransactionArgs'; -import { writable } from 'svelte/store'; -import type { DotrainOrderGui } from '@rainlanguage/orderbook/js_api'; -import type { OrderIO } from '@rainlanguage/orderbook/js_api'; -import type { DeploymentArgs } from '../lib/types/transaction'; -vi.mock('../lib/components/deployment/getDeploymentTransactionArgs', () => ({ - getDeploymentTransactionArgs: vi.fn() -})); describe('DisclaimerModal', () => { - const mockGui = {} as DotrainOrderGui; - const mockOutputs = [] as OrderIO[]; - const mockWagmiConfig = writable(undefined); - const mockHandleDeployModal = vi.fn() as unknown as (args: DeploymentArgs) => void; + const mockOnAccept = vi.fn(); beforeEach(() => { vi.clearAllMocks(); }); - it('calls getDeploymentTransactionArgs when opened', async () => { - const mockResult = { - approvals: {}, - deploymentCalldata: {}, - orderbookAddress: '0x123', - chainId: 1 - }; - (getDeploymentTransactionArgs as Mock).mockResolvedValue(mockResult); - - render(DisclaimerModal, { - props: { - open: true, - gui: mockGui, - allTokenOutputs: mockOutputs, - wagmiConfig: mockWagmiConfig, - subgraphUrl: 'https://example.com', - handleDeployModal: mockHandleDeployModal - } - }); - - expect(getDeploymentTransactionArgs).toHaveBeenCalledWith(mockGui, undefined, mockOutputs); - }); - - it('shows error message when getDeploymentTransactionArgs fails', async () => { - const errorMessage = 'Test error message'; - (getDeploymentTransactionArgs as Mock).mockRejectedValue(new Error(errorMessage)); - - render(DisclaimerModal, { - props: { - open: true, - gui: mockGui, - allTokenOutputs: mockOutputs, - wagmiConfig: mockWagmiConfig, - subgraphUrl: 'https://example.com', - handleDeployModal: mockHandleDeployModal - } - }); - - const errorText = await screen.findByText('Error getting deployment transaction data:'); - const errorDetails = await screen.findByText(errorMessage); - expect(errorText).toBeInTheDocument(); - expect(errorDetails).toBeInTheDocument(); - }); - - it('calls handleDeployModal with result when accepting disclaimer', async () => { - const mockResult = { - approvals: {}, - deploymentCalldata: {}, - orderbookAddress: '0x123', - chainId: 1, - subgraphUrl: 'https://example.com' - }; - (getDeploymentTransactionArgs as Mock).mockResolvedValue(mockResult); - + it('calls onAccept when accepting disclaimer', async () => { render(DisclaimerModal, { props: { open: true, - gui: mockGui, - allTokenOutputs: mockOutputs, - wagmiConfig: mockWagmiConfig, - subgraphUrl: 'https://example.com', - handleDeployModal: mockHandleDeployModal + onAccept: mockOnAccept } }); const deployButton = await screen.findByText('Deploy'); await fireEvent.click(deployButton); - expect(mockHandleDeployModal).toHaveBeenCalledWith(mockResult); + expect(mockOnAccept).toHaveBeenCalled(); }); }); diff --git a/packages/ui-components/src/lib/components/deployment/DisclaimerModal.svelte b/packages/ui-components/src/lib/components/deployment/DisclaimerModal.svelte index 6f5d0e250..a1a748645 100644 --- a/packages/ui-components/src/lib/components/deployment/DisclaimerModal.svelte +++ b/packages/ui-components/src/lib/components/deployment/DisclaimerModal.svelte @@ -2,7 +2,7 @@ import { Alert, Modal, Button } from 'flowbite-svelte'; import { ExclamationCircleSolid } from 'flowbite-svelte-icons'; export let open: boolean = false; - export let onAccept: () => void; + export let onAccept: () => void = () => {}; async function handleAcceptDisclaimer() { open = false; diff --git a/packages/webapp/src/lib/components/Sidebar.svelte b/packages/webapp/src/lib/components/Sidebar.svelte index d3bab927e..606a68b58 100644 --- a/packages/webapp/src/lib/components/Sidebar.svelte +++ b/packages/webapp/src/lib/components/Sidebar.svelte @@ -65,7 +65,7 @@ {#if !sideBarHidden} (sideBarHidden = true)} /> {/if}