From ebf0d096d5b758d5ca0b87cefc23d49b54cad806 Mon Sep 17 00:00:00 2001 From: shiva Date: Fri, 13 Dec 2024 17:00:16 +0530 Subject: [PATCH 1/3] refactor:request screen to vitest --- .../{Requests.test.tsx => Requests.spec.tsx} | 15 ++++++++++++--- 1 file changed, 12 insertions(+), 3 deletions(-) rename src/screens/Requests/{Requests.test.tsx => Requests.spec.tsx} (96%) diff --git a/src/screens/Requests/Requests.test.tsx b/src/screens/Requests/Requests.spec.tsx similarity index 96% rename from src/screens/Requests/Requests.test.tsx rename to src/screens/Requests/Requests.spec.tsx index 4606fdae08..0be900404e 100644 --- a/src/screens/Requests/Requests.test.tsx +++ b/src/screens/Requests/Requests.spec.tsx @@ -1,8 +1,6 @@ import React, { act } from 'react'; import { MockedProvider } from '@apollo/react-testing'; import { render, screen } from '@testing-library/react'; -import 'jest-localstorage-mock'; -import 'jest-location-mock'; import { I18nextProvider } from 'react-i18next'; import { Provider } from 'react-redux'; import { BrowserRouter } from 'react-router-dom'; @@ -22,6 +20,18 @@ import { MOCKS4, } from './RequestsMocks'; import useLocalStorage from 'utils/useLocalstorage'; +import { vi } from 'vitest'; + +vi.stubGlobal('localStorage', { + getItem: vi.fn(), + setItem: vi.fn(), + clear: vi.fn(), + removeItem: vi.fn(), +}); + +Object.defineProperty(window, 'location', { + value: { href: 'http://localhost/', assign: vi.fn(), reload: vi.fn() }, +}); const { setItem, removeItem } = useLocalStorage(); @@ -53,7 +63,6 @@ afterEach(() => { describe('Testing Requests screen', () => { test('Component should be rendered properly', async () => { - const loadMoreRequests = jest.fn(); render( From aceed4c0ce6181de8b1bb6f04dca92b0b575073f Mon Sep 17 00:00:00 2001 From: shiva Date: Fri, 13 Dec 2024 19:17:18 +0530 Subject: [PATCH 2/3] refactor:vitest to Requests Screen --- src/screens/Requests/Requests.spec.tsx | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/src/screens/Requests/Requests.spec.tsx b/src/screens/Requests/Requests.spec.tsx index 0be900404e..84fd32e5f4 100644 --- a/src/screens/Requests/Requests.spec.tsx +++ b/src/screens/Requests/Requests.spec.tsx @@ -22,6 +22,10 @@ import { import useLocalStorage from 'utils/useLocalstorage'; import { vi } from 'vitest'; +/** + * Set up `localStorage` stubs for testing. + */ + vi.stubGlobal('localStorage', { getItem: vi.fn(), setItem: vi.fn(), @@ -29,6 +33,10 @@ vi.stubGlobal('localStorage', { removeItem: vi.fn(), }); +/** + * Mock `window.location` for testing redirection behavior. + */ + Object.defineProperty(window, 'location', { value: { href: 'http://localhost/', assign: vi.fn(), reload: vi.fn() }, }); @@ -43,6 +51,14 @@ const link5 = new StaticMockLink(MOCKS_WITH_ERROR, true); const link6 = new StaticMockLink(MOCKS3, true); const link7 = new StaticMockLink(MOCKS4, true); +/** + * Utility function to wait for a specified amount of time. + * Wraps `setTimeout` in an `act` block for testing purposes. + * + * @param ms - The duration to wait in milliseconds. Default is 100ms. + * @returns A promise that resolves after the specified time. + */ + async function wait(ms = 100): Promise { await act(() => { return new Promise((resolve) => { From bb4bad85e73e96aa1a175f8994a1afcd83385d3f Mon Sep 17 00:00:00 2001 From: shiva Date: Fri, 13 Dec 2024 19:42:32 +0530 Subject: [PATCH 3/3] implement codreabbit suggestions --- src/screens/Requests/Requests.spec.tsx | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/src/screens/Requests/Requests.spec.tsx b/src/screens/Requests/Requests.spec.tsx index 84fd32e5f4..820b24c40d 100644 --- a/src/screens/Requests/Requests.spec.tsx +++ b/src/screens/Requests/Requests.spec.tsx @@ -38,7 +38,15 @@ vi.stubGlobal('localStorage', { */ Object.defineProperty(window, 'location', { - value: { href: 'http://localhost/', assign: vi.fn(), reload: vi.fn() }, + value: { + href: 'http://localhost/', + assign: vi.fn(), + reload: vi.fn(), + pathname: '/', + search: '', + hash: '', + origin: 'http://localhost', + }, }); const { setItem, removeItem } = useLocalStorage();