From 924c8f7dcc23d7867ca9404c3466ef370cef3a2e Mon Sep 17 00:00:00 2001 From: Cindy Green Date: Wed, 8 Jan 2025 13:20:18 -0500 Subject: [PATCH] Updates test to include throwing an error. --- .../src/hooks/useConfigFileImporter.test.tsx | 39 ++++++++++++------- 1 file changed, 25 insertions(+), 14 deletions(-) diff --git a/src/renderer/src/hooks/useConfigFileImporter.test.tsx b/src/renderer/src/hooks/useConfigFileImporter.test.tsx index af39e69..d718fb6 100644 --- a/src/renderer/src/hooks/useConfigFileImporter.test.tsx +++ b/src/renderer/src/hooks/useConfigFileImporter.test.tsx @@ -13,20 +13,21 @@ describe('useSelectProjectConfigFile', () => { } }) + function createWrapper() { + const queryClient = new QueryClient() + return ({ children }: { children: React.ReactNode }) => ( + {children} + ) + } + it('returns filename and filepath from window.runtime.selectFile', async () => { vi.spyOn(window.runtime, 'selectFile').mockResolvedValue({ name: 'myFile.comapeocat', path: '/Users/cindy/documents/myFile.comapeocat', }) - const queryClient = new QueryClient() - - const wrapper = ({ children }: { children: React.ReactNode }) => ( - {children} - ) - const { result } = renderHook(() => useSelectProjectConfigFile(), { - wrapper, + wrapper: createWrapper(), }) await act(async () => { @@ -41,14 +42,8 @@ describe('useSelectProjectConfigFile', () => { it('returns undefined if user cancels', async () => { vi.spyOn(window.runtime, 'selectFile').mockResolvedValue(undefined) - const queryClient = new QueryClient() - - const wrapper = ({ children }: { children: React.ReactNode }) => ( - {children} - ) - const { result } = renderHook(() => useSelectProjectConfigFile(), { - wrapper, + wrapper: createWrapper(), }) await act(async () => { @@ -56,4 +51,20 @@ describe('useSelectProjectConfigFile', () => { expect(val).toBeUndefined() }) }) + + it('throws if the returned object has invalid shape', async () => { + vi.spyOn(window.runtime, 'selectFile').mockRejectedValue( + new Error('Value has invalid shape'), + ) + + const { result } = renderHook(() => useSelectProjectConfigFile(), { + wrapper: createWrapper(), + }) + + await expect( + act(async () => { + await result.current.mutateAsync() + }), + ).rejects.toThrow('Value has invalid shape') + }) })