Skip to content

Commit 2631381

Browse files
committed
Simplify unit tests
1 parent e1cc979 commit 2631381

File tree

2 files changed

+47
-45
lines changed

2 files changed

+47
-45
lines changed

web_ui/src/core/jobs/hooks/utils.test.tsx

Lines changed: 34 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,12 @@
11
// Copyright (C) 2022-2025 Intel Corporation
22
// LIMITED EDGE SOFTWARE DISTRIBUTION LICENSE
33

4-
import { useQueryClient } from '@tanstack/react-query';
4+
import { ReactNode } from 'react';
5+
6+
import { QueryClientProvider } from '@tanstack/react-query';
57
import { waitFor } from '@testing-library/react';
68

9+
import { createGetiQueryClient } from '../../../providers/query-client-provider/query-client-provider.component';
710
import { getMockedWorkspaceIdentifier } from '../../../test-utils/mocked-items-factory/mocked-identifiers';
811
import { getMockedJob } from '../../../test-utils/mocked-items-factory/mocked-jobs';
912
import { renderHookWithProviders } from '../../../test-utils/render-hook-with-providers';
@@ -29,16 +32,23 @@ const getMockedResponse = (jobs: Job[]) => ({
2932
});
3033

3134
const workspaceIdentifier = getMockedWorkspaceIdentifier({ workspaceId: 'workspaceId' });
35+
const mockSetInvalidateQueries = jest.fn();
36+
37+
const queryClient = createGetiQueryClient({
38+
addNotification: jest.fn(),
39+
});
40+
queryClient.invalidateQueries = mockSetInvalidateQueries;
41+
42+
const wrapper = ({ children }: { children: ReactNode }) => (
43+
<QueryClientProvider client={queryClient}>{children}</QueryClientProvider>
44+
);
3245

3346
describe('Use jobs hook utils', () => {
34-
beforeAll(() => {
35-
jest.resetAllMocks();
47+
beforeEach(() => {
48+
jest.clearAllMocks();
3649
});
3750

3851
it('Should not invalidate balance if feature flag is disabled', async () => {
39-
const queryClient = renderHookWithProviders(useQueryClient);
40-
queryClient.result.current.invalidateQueries = jest.fn();
41-
4252
renderHookWithProviders(
4353
() => {
4454
return useInvalidateBalanceOnNewJob(
@@ -48,26 +58,23 @@ describe('Use jobs hook utils', () => {
4858
);
4959
},
5060
{
61+
wrapper,
5162
providerProps: { featureFlags: { FEATURE_FLAG_CREDIT_SYSTEM: false } },
5263
}
5364
);
5465

5566
await waitFor(() => {
56-
expect(queryClient.result.current.invalidateQueries).not.toHaveBeenCalled();
67+
expect(mockSetInvalidateQueries).not.toHaveBeenCalled();
5768
});
5869
});
5970

6071
it('Should invalidate balance if feature flag is enabled', async () => {
61-
let invalidateSpy: jest.SpyInstance | undefined;
62-
6372
const { rerender } = renderHookWithProviders(
6473
({ jobs }) => {
65-
const queryClient = useQueryClient();
66-
invalidateSpy = jest.spyOn(queryClient, 'invalidateQueries');
67-
6874
return useInvalidateBalanceOnNewJob(workspaceIdentifier, getMockedResponse(jobs), {});
6975
},
7076
{
77+
wrapper,
7178
providerProps: { featureFlags: { FEATURE_FLAG_CREDIT_SYSTEM: true } },
7279
initialProps: {
7380
jobs: [
@@ -94,56 +101,53 @@ describe('Use jobs hook utils', () => {
94101
});
95102

96103
await waitFor(() => {
97-
expect(invalidateSpy).toHaveBeenCalledTimes(2);
104+
expect(mockSetInvalidateQueries).toHaveBeenCalledTimes(2);
98105
});
99106
});
100107

101108
it('Should not invalidate balance if there are no jobs', async () => {
102-
const queryClient = renderHookWithProviders(useQueryClient);
103-
queryClient.result.current.invalidateQueries = jest.fn();
104-
105109
renderHookWithProviders(
106110
() =>
107111
useInvalidateBalanceOnNewJob(workspaceIdentifier, getMockedResponse([]), {
108112
jobState: JobState.SCHEDULED,
109113
}),
110-
{ providerProps: { featureFlags: { FEATURE_FLAG_CREDIT_SYSTEM: true } } }
114+
{
115+
wrapper,
116+
providerProps: { featureFlags: { FEATURE_FLAG_CREDIT_SYSTEM: true } },
117+
}
111118
);
112119

113120
await waitFor(() => {
114-
expect(queryClient.result.current.invalidateQueries).not.toHaveBeenCalled();
121+
expect(mockSetInvalidateQueries).not.toHaveBeenCalled();
115122
});
116123
});
117124

118125
it('Should not invalidate balance if there are no jobs with cost', async () => {
119-
const queryClient = renderHookWithProviders(useQueryClient);
120-
queryClient.result.current.invalidateQueries = jest.fn();
121126
renderHookWithProviders(
122127
() =>
123128
useInvalidateBalanceOnNewJob(workspaceIdentifier, getMockedResponse([getMockedJob()]), {
124129
jobState: JobState.SCHEDULED,
125130
}),
126-
{ providerProps: { featureFlags: { FEATURE_FLAG_CREDIT_SYSTEM: true } } }
131+
{
132+
wrapper,
133+
providerProps: { featureFlags: { FEATURE_FLAG_CREDIT_SYSTEM: true } },
134+
}
127135
);
128136

129137
await waitFor(() => {
130-
expect(queryClient.result.current.invalidateQueries).not.toHaveBeenCalled();
138+
expect(mockSetInvalidateQueries).not.toHaveBeenCalled();
131139
});
132140
});
133141

134142
it('Should invalidate balance if there is a job with new id or a new job', async () => {
135-
let invalidateSpy: jest.SpyInstance | undefined;
136-
137143
const { rerender } = renderHookWithProviders(
138144
({ jobs }) => {
139-
const queryClient = useQueryClient();
140-
invalidateSpy = jest.spyOn(queryClient, 'invalidateQueries');
141-
142145
return useInvalidateBalanceOnNewJob(workspaceIdentifier, getMockedResponse(jobs), {
143146
jobState: JobState.SCHEDULED,
144147
});
145148
},
146149
{
150+
wrapper,
147151
providerProps: {
148152
featureFlags: { FEATURE_FLAG_CREDIT_SYSTEM: true },
149153
},
@@ -159,7 +163,7 @@ describe('Use jobs hook utils', () => {
159163
);
160164

161165
await waitFor(() => {
162-
expect(invalidateSpy).toHaveBeenCalledTimes(1);
166+
expect(mockSetInvalidateQueries).toHaveBeenCalledTimes(1);
163167
});
164168

165169
rerender({
@@ -173,7 +177,7 @@ describe('Use jobs hook utils', () => {
173177
});
174178

175179
await waitFor(() => {
176-
expect(invalidateSpy).toHaveBeenCalledTimes(2);
180+
expect(mockSetInvalidateQueries).toHaveBeenCalledTimes(2);
177181
});
178182

179183
rerender({
@@ -188,7 +192,7 @@ describe('Use jobs hook utils', () => {
188192
});
189193

190194
await waitFor(() => {
191-
expect(invalidateSpy).toHaveBeenCalledTimes(3);
195+
expect(mockSetInvalidateQueries).toHaveBeenCalledTimes(3);
192196
});
193197
});
194198
});

web_ui/src/pages/media/hooks/media-delete/media-delete.hook.test.tsx

Lines changed: 13 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,13 @@
11
// Copyright (C) 2022-2025 Intel Corporation
22
// LIMITED EDGE SOFTWARE DISTRIBUTION LICENSE
33

4-
import { QueryClient, useQueryClient } from '@tanstack/react-query';
4+
import { QueryClientProvider } from '@tanstack/react-query';
55
import { waitFor } from '@testing-library/react';
66

77
import { MEDIA_TYPE } from '../../../../core/media/base-media.interface';
88
import { createInMemoryMediaService } from '../../../../core/media/services/in-memory-media-service/in-memory-media-service';
99
import { MediaService } from '../../../../core/media/services/media-service.interface';
10+
import { createGetiQueryClient } from '../../../../providers/query-client-provider/query-client-provider.component';
1011
import { getMockedProjectIdentifier } from '../../../../test-utils/mocked-items-factory/mocked-identifiers';
1112
import { getMockedImageMediaItem } from '../../../../test-utils/mocked-items-factory/mocked-media';
1213
import { renderHookWithProviders } from '../../../../test-utils/render-hook-with-providers';
@@ -35,22 +36,19 @@ const renderDeleteMediaMutationHook = ({
3536
}: {
3637
mediaService?: MediaService;
3738
} = {}) => {
38-
let queryClient: QueryClient;
39-
40-
return renderHookWithProviders(
41-
() => {
42-
queryClient = useQueryClient();
43-
queryClient.setQueriesData = mockSetQueriesData;
39+
const queryClient = createGetiQueryClient({
40+
addNotification: jest.fn(),
41+
});
42+
queryClient.setQueriesData = mockSetQueriesData;
4443

45-
return useDeleteMediaMutation();
46-
},
47-
{
48-
wrapper: ({ children }) => (
44+
return renderHookWithProviders(useDeleteMediaMutation, {
45+
wrapper: ({ children }) => (
46+
<QueryClientProvider client={queryClient}>
4947
<ProjectProvider projectIdentifier={getMockedProjectIdentifier()}>{children}</ProjectProvider>
50-
),
51-
providerProps: { mediaService },
52-
}
53-
);
48+
</QueryClientProvider>
49+
),
50+
providerProps: { mediaService },
51+
});
5452
};
5553

5654
const mockedResponse = {

0 commit comments

Comments
 (0)