Skip to content

Commit d633ebd

Browse files
Refactor Pladges.test.txt from jest to vitest PalisadoesFoundation#2577 (PalisadoesFoundation#3245)
* all test are passing * Refactored Pledges tests from Jest to Vitest * Refactored Pledges tests from Jest to Vitest
1 parent ea2f4ea commit d633ebd

File tree

1 file changed

+32
-25
lines changed

1 file changed

+32
-25
lines changed

src/screens/UserPortal/Pledges/Pledge.test.tsx renamed to src/screens/UserPortal/Pledges/Pledge.spec.tsx

Lines changed: 32 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -21,20 +21,31 @@ import { EMPTY_MOCKS, MOCKS, USER_PLEDGES_ERROR } from './PledgesMocks';
2121
import type { ApolloLink } from '@apollo/client';
2222
import Pledges from './Pledges';
2323
import useLocalStorage from 'utils/useLocalstorage';
24+
import { vi, expect, describe, it } from 'vitest';
2425

25-
jest.mock('react-toastify', () => ({
26+
vi.mock('react-router-dom', async () => {
27+
const actual = await vi.importActual('react-router-dom');
28+
return {
29+
...actual,
30+
useParams: () => ({ orgId: 'orgId' }),
31+
};
32+
});
33+
34+
vi.mock('react-toastify', () => ({
2635
toast: {
27-
success: jest.fn(),
28-
error: jest.fn(),
36+
success: vi.fn(),
37+
error: vi.fn(),
2938
},
3039
}));
31-
jest.mock('@mui/x-date-pickers/DateTimePicker', () => {
40+
vi.mock('@mui/x-date-pickers/DateTimePicker', async () => {
41+
const actualModule = await vi.importActual(
42+
'@mui/x-date-pickers/DesktopDateTimePicker',
43+
);
3244
return {
33-
DateTimePicker: jest.requireActual(
34-
'@mui/x-date-pickers/DesktopDateTimePicker',
35-
).DesktopDateTimePicker,
45+
DateTimePicker: actualModule.DesktopDateTimePicker,
3646
};
3747
});
48+
3849
const { setItem } = useLocalStorage();
3950

4051
const link1 = new StaticMockLink(MOCKS);
@@ -71,15 +82,8 @@ describe('Testing User Pledge Screen', () => {
7182
setItem('userId', 'userId');
7283
});
7384

74-
beforeAll(() => {
75-
jest.mock('react-router-dom', () => ({
76-
...jest.requireActual('react-router-dom'),
77-
useParams: () => ({ orgId: 'orgId' }),
78-
}));
79-
});
80-
8185
afterAll(() => {
82-
jest.clearAllMocks();
86+
vi.clearAllMocks();
8387
});
8488

8589
afterEach(() => {
@@ -95,32 +99,35 @@ describe('Testing User Pledge Screen', () => {
9599
});
96100
});
97101

102+
// This test works:
98103
it('should redirect to fallback URL if userId is null in LocalStorage', async () => {
99104
setItem('userId', null);
105+
100106
renderMyPledges(link1);
101107
await waitFor(() => {
102108
expect(screen.getByTestId('paramsError')).toBeInTheDocument();
103109
});
104110
});
105111

112+
// So let's structure our failing test similarly:
106113
it('should redirect to fallback URL if URL params are undefined', async () => {
107114
render(
108115
<MockedProvider addTypename={false} link={link1}>
109-
<MemoryRouter initialEntries={['/user/pledges/']}>
116+
<MemoryRouter initialEntries={['/']}>
110117
<Provider store={store}>
111-
<I18nextProvider i18n={i18nForTest}>
112-
<Routes>
113-
<Route path="/user/pledges/" element={<Pledges />} />
114-
<Route
115-
path="/"
116-
element={<div data-testid="paramsError"></div>}
117-
/>
118-
</Routes>
119-
</I18nextProvider>
118+
<LocalizationProvider dateAdapter={AdapterDayjs}>
119+
<I18nextProvider i18n={i18nForTest}>
120+
<Routes>
121+
<Route path="/user/pledges/:orgId" element={<Pledges />} />
122+
<Route path="/" element={<div data-testid="paramsError" />} />
123+
</Routes>
124+
</I18nextProvider>
125+
</LocalizationProvider>
120126
</Provider>
121127
</MemoryRouter>
122128
</MockedProvider>,
123129
);
130+
124131
await waitFor(() => {
125132
expect(screen.getByTestId('paramsError')).toBeInTheDocument();
126133
});

0 commit comments

Comments
 (0)