Skip to content

Commit 70a216d

Browse files
authored
test(vue-query/mutationOptions): add 'useIsMutating' tests for getter overloads (#10469)
1 parent 7d3b86c commit 70a216d

1 file changed

Lines changed: 76 additions & 0 deletions

File tree

packages/vue-query/src/__tests__/mutationOptions.test.ts

Lines changed: 76 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -149,6 +149,82 @@ describe('mutationOptions', () => {
149149
expect(isMutatingArray).toEqual([0, 1, 0])
150150
})
151151

152+
it('should return the number of fetching mutations when used with useIsMutating (getter without mutationKey in mutationOptions)', async () => {
153+
const isMutatingArray: Array<number> = []
154+
const mutationOpts = mutationOptions(() => ({
155+
mutationFn: () => sleep(50).then(() => 'data'),
156+
}))
157+
158+
const { mutate } = useMutation(mutationOpts)
159+
const isMutating = useIsMutating()
160+
161+
isMutatingArray.push(isMutating.value)
162+
163+
mutate()
164+
await vi.advanceTimersByTimeAsync(0)
165+
isMutatingArray.push(isMutating.value)
166+
await vi.advanceTimersByTimeAsync(50)
167+
isMutatingArray.push(isMutating.value)
168+
169+
expect(isMutatingArray).toEqual([0, 1, 0])
170+
})
171+
172+
it('should return the number of fetching mutations when used with useIsMutating (getter)', async () => {
173+
const isMutatingArray: Array<number> = []
174+
const mutationOpts1 = mutationOptions(() => ({
175+
mutationKey: ['key'],
176+
mutationFn: () => sleep(50).then(() => 'data1'),
177+
}))
178+
const mutationOpts2 = mutationOptions(() => ({
179+
mutationFn: () => sleep(50).then(() => 'data2'),
180+
}))
181+
182+
const { mutate: mutate1 } = useMutation(mutationOpts1)
183+
const { mutate: mutate2 } = useMutation(mutationOpts2)
184+
const isMutating = useIsMutating()
185+
186+
isMutatingArray.push(isMutating.value)
187+
188+
mutate1()
189+
mutate2()
190+
await vi.advanceTimersByTimeAsync(0)
191+
isMutatingArray.push(isMutating.value)
192+
await vi.advanceTimersByTimeAsync(50)
193+
isMutatingArray.push(isMutating.value)
194+
195+
expect(isMutatingArray).toEqual([0, 2, 0])
196+
})
197+
198+
it('should return the number of fetching mutations when used with useIsMutating (getter, filter mutationOpts1.mutationKey)', async () => {
199+
const isMutatingArray: Array<number> = []
200+
const mutationOpts1 = mutationOptions(() => ({
201+
mutationKey: ['key'],
202+
mutationFn: () => sleep(50).then(() => 'data1'),
203+
}))
204+
const mutationOpts2 = mutationOptions(() => ({
205+
mutationFn: () => sleep(50).then(() => 'data2'),
206+
}))
207+
208+
const resolvedOpts1 = mutationOpts1()
209+
210+
const { mutate: mutate1 } = useMutation(mutationOpts1)
211+
const { mutate: mutate2 } = useMutation(mutationOpts2)
212+
const isMutating = useIsMutating({
213+
mutationKey: resolvedOpts1.mutationKey,
214+
})
215+
216+
isMutatingArray.push(isMutating.value)
217+
218+
mutate1()
219+
mutate2()
220+
await vi.advanceTimersByTimeAsync(0)
221+
isMutatingArray.push(isMutating.value)
222+
await vi.advanceTimersByTimeAsync(50)
223+
isMutatingArray.push(isMutating.value)
224+
225+
expect(isMutatingArray).toEqual([0, 1, 0])
226+
})
227+
152228
it('should return the number of fetching mutations when used with queryClient.isMutating (with mutationKey in mutationOptions)', async () => {
153229
const isMutatingArray: Array<number> = []
154230
const queryClient = useQueryClient()

0 commit comments

Comments
 (0)