Skip to content

Commit 2212fff

Browse files
authored
test(svelte-query/createQuery): switch to fake timers, replace 'waitFor' with 'vi.waitFor', and add 'expect' (#9384)
1 parent 06cb8eb commit 2212fff

File tree

1 file changed

+38
-18
lines changed

1 file changed

+38
-18
lines changed

packages/svelte-query/tests/createQuery/createQuery.test.ts

Lines changed: 38 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
1-
import { describe, expect, test } from 'vitest'
2-
import { fireEvent, render, waitFor } from '@testing-library/svelte'
1+
import { afterEach, beforeEach, describe, expect, test, vi } from 'vitest'
2+
import { fireEvent, render } from '@testing-library/svelte'
33
import { derived, get, writable } from 'svelte/store'
44
import { QueryClient } from '@tanstack/query-core'
55
import { sleep } from '@tanstack/query-test-utils'
@@ -11,6 +11,14 @@ import type { Writable } from 'svelte/store'
1111
import type { QueryObserverResult } from '@tanstack/query-core'
1212

1313
describe('createQuery', () => {
14+
beforeEach(() => {
15+
vi.useFakeTimers()
16+
})
17+
18+
afterEach(() => {
19+
vi.useRealTimers()
20+
})
21+
1422
test('Return the correct states for a successful query', async () => {
1523
const statesStore: Writable<Array<QueryObserverResult>> = writable([])
1624

@@ -30,7 +38,7 @@ describe('createQuery', () => {
3038
},
3139
})
3240

33-
await waitFor(() => {
41+
await vi.waitFor(() => {
3442
expect(rendered.queryByText('Status: success')).toBeInTheDocument()
3543
})
3644

@@ -111,7 +119,9 @@ describe('createQuery', () => {
111119
},
112120
})
113121

114-
await waitFor(() => rendered.getByText('Status: error'))
122+
await vi.waitFor(() =>
123+
expect(rendered.getByText('Status: error')).toBeInTheDocument(),
124+
)
115125

116126
const states = get(statesStore)
117127

@@ -218,7 +228,7 @@ describe('createQuery', () => {
218228
},
219229
})
220230

221-
await waitFor(() => {
231+
await vi.waitFor(() => {
222232
expect(rendered.queryByText('Status: success')).toBeInTheDocument()
223233
})
224234
})
@@ -244,7 +254,7 @@ describe('createQuery', () => {
244254
},
245255
})
246256

247-
await waitFor(() => {
257+
await vi.waitFor(() => {
248258
expect(rendered.queryByText('Status: success')).toBeInTheDocument()
249259
})
250260
})
@@ -272,21 +282,21 @@ describe('createQuery', () => {
272282
},
273283
})
274284

275-
await waitFor(() => {
285+
await vi.waitFor(() => {
276286
expect(rendered.queryByText('Data: 1')).toBeInTheDocument()
277287
expect(rendered.queryByText('Data: 2')).not.toBeInTheDocument()
278288
})
279289

280290
writableStore.set(2)
281291

282-
await waitFor(() => {
292+
await vi.waitFor(() => {
283293
expect(rendered.queryByText('Data: 1')).not.toBeInTheDocument()
284294
expect(rendered.queryByText('Data: 2')).toBeInTheDocument()
285295
})
286296

287297
writableStore.set(1)
288298

289-
await waitFor(() => {
299+
await vi.waitFor(() => {
290300
expect(rendered.queryByText('Data: 1')).toBeInTheDocument()
291301
expect(rendered.queryByText('Data: 2')).not.toBeInTheDocument()
292302
})
@@ -302,11 +312,15 @@ describe('createQuery', () => {
302312
},
303313
})
304314

305-
await waitFor(() => rendered.getByText('Data: 0'))
315+
await vi.waitFor(() =>
316+
expect(rendered.getByText('Data: 0')).toBeInTheDocument(),
317+
)
306318

307319
fireEvent.click(rendered.getByRole('button', { name: 'setCount' }))
308320

309-
await waitFor(() => rendered.getByText('Data: 1'))
321+
await vi.waitFor(() =>
322+
expect(rendered.getByText('Data: 1')).toBeInTheDocument(),
323+
)
310324

311325
const states = get(statesStore)
312326

@@ -354,13 +368,15 @@ describe('createQuery', () => {
354368
},
355369
})
356370

357-
await waitFor(() => rendered.getByText('Data: 0'))
371+
await vi.waitFor(() =>
372+
expect(rendered.getByText('Data: 0')).toBeInTheDocument(),
373+
)
358374

359375
fireEvent.click(rendered.getByRole('button', { name: /Increment/i }))
360376

361-
await waitFor(() => {
362-
rendered.getByText('Count: 1')
363-
rendered.getByText('Data: undefined')
377+
await vi.waitFor(() => {
378+
expect(rendered.getByText('Count: 1')).toBeInTheDocument()
379+
expect(rendered.getByText('Data: undefined')).toBeInTheDocument()
364380
})
365381

366382
const states = get(statesStore)
@@ -398,13 +414,17 @@ describe('createQuery', () => {
398414
},
399415
})
400416

401-
await waitFor(() => rendered.getByText('Data: 1'))
417+
await vi.waitFor(() =>
418+
expect(rendered.getByText('Data: 1')).toBeInTheDocument(),
419+
)
402420
fireEvent.click(rendered.getByRole('button', { name: /Remove/i }))
403421

404-
await sleep(5)
422+
await vi.advanceTimersByTimeAsync(5)
405423

406424
fireEvent.click(rendered.getByRole('button', { name: /Refetch/i }))
407-
await waitFor(() => rendered.getByText('Data: 2'))
425+
await vi.waitFor(() =>
426+
expect(rendered.getByText('Data: 2')).toBeInTheDocument(),
427+
)
408428

409429
const states = get(statesStore)
410430

0 commit comments

Comments
 (0)