Skip to content

Commit b799510

Browse files
authored
test(angular-query-experimental/injectQueries): switch to fake timers, replace 'setTimeout' with 'sleep', replace 'findByText' with 'getByText', add 'toBeInTheDocument', remove unused 'toString' method, rename '_pushResults' to '_', and add '@testing-library/jest-dom/vitest' (TanStack#9896)
1 parent 0249bbd commit b799510

File tree

2 files changed

+22
-17
lines changed

2 files changed

+22
-17
lines changed

packages/angular-query-experimental/src/__tests__/inject-queries.test.ts

Lines changed: 21 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -1,18 +1,19 @@
1-
import { beforeEach, describe, expect, it } from 'vitest'
2-
import { render } from '@testing-library/angular'
1+
import { afterEach, beforeEach, describe, expect, it, vi } from 'vitest'
32
import {
43
Component,
54
effect,
65
provideZonelessChangeDetection,
76
} from '@angular/core'
87
import { TestBed } from '@angular/core/testing'
9-
import { queryKey } from '@tanstack/query-test-utils'
8+
import { render } from '@testing-library/angular'
9+
import { queryKey, sleep } from '@tanstack/query-test-utils'
1010
import { QueryClient, provideTanStackQuery } from '..'
1111
import { injectQueries } from '../inject-queries'
1212

1313
let queryClient: QueryClient
1414

1515
beforeEach(() => {
16+
vi.useFakeTimers()
1617
queryClient = new QueryClient()
1718
TestBed.configureTestingModule({
1819
providers: [
@@ -22,6 +23,10 @@ beforeEach(() => {
2223
})
2324
})
2425

26+
afterEach(() => {
27+
vi.useRealTimers()
28+
})
29+
2530
describe('injectQueries', () => {
2631
it('should return the correct states', async () => {
2732
const key1 = queryKey()
@@ -39,37 +44,36 @@ describe('injectQueries', () => {
3944
`,
4045
})
4146
class Page {
42-
toString(val: any) {
43-
return String(val)
44-
}
4547
result = injectQueries(() => ({
4648
queries: [
4749
{
4850
queryKey: key1,
49-
queryFn: async () => {
50-
await new Promise((r) => setTimeout(r, 10))
51-
return 1
52-
},
51+
queryFn: () => sleep(10).then(() => 1),
5352
},
5453
{
5554
queryKey: key2,
56-
queryFn: async () => {
57-
await new Promise((r) => setTimeout(r, 100))
58-
return 2
59-
},
55+
queryFn: () => sleep(100).then(() => 2),
6056
},
6157
],
6258
}))
6359

64-
_pushResults = effect(() => {
60+
_ = effect(() => {
6561
const snapshot = this.result().map((q) => ({ data: q.data() }))
6662
results.push(snapshot)
6763
})
6864
}
6965

70-
const rendered = await render(Page)
66+
const rendered = await render(Page, {
67+
providers: [
68+
provideZonelessChangeDetection(),
69+
provideTanStackQuery(queryClient),
70+
],
71+
})
72+
73+
await vi.advanceTimersByTimeAsync(101)
74+
rendered.fixture.detectChanges()
7175

72-
await rendered.findByText('data1: 1, data2: 2')
76+
expect(rendered.getByText('data1: 1, data2: 2')).toBeInTheDocument()
7377

7478
expect(results.length).toBe(3)
7579
expect(results[0]).toMatchObject([{ data: undefined }, { data: undefined }])

packages/angular-query-experimental/test-setup.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1+
import '@testing-library/jest-dom/vitest'
12
import { getTestBed } from '@angular/core/testing'
23
import {
34
BrowserTestingModule,

0 commit comments

Comments
 (0)