Skip to content

Commit c807ee2

Browse files
authored
chore(angular-query): zoneless testing (#8652)
1 parent b184cd5 commit c807ee2

File tree

14 files changed

+209
-2478
lines changed

14 files changed

+209
-2478
lines changed

‎packages/angular-query-devtools-experimental/package.json

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -52,7 +52,6 @@
5252
"@tanstack/query-devtools": "workspace:*"
5353
},
5454
"devDependencies": {
55-
"@analogjs/vite-plugin-angular": "^1.6.4",
5655
"@angular/core": "^19.1.0-next.0",
5756
"@angular/platform-browser-dynamic": "^19.1.0-next.0",
5857
"@tanstack/angular-query-experimental": "workspace:*",

‎packages/angular-query-devtools-experimental/src/__tests__/inject-devtools-panel.test.ts

Lines changed: 19 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,9 @@
1-
import { ElementRef, signal } from '@angular/core'
2-
import { TestBed, fakeAsync } from '@angular/core/testing'
1+
import {
2+
ElementRef,
3+
provideExperimentalZonelessChangeDetection,
4+
signal,
5+
} from '@angular/core'
6+
import { TestBed } from '@angular/core/testing'
37
import {
48
QueryClient,
59
provideTanStackQuery,
@@ -34,6 +38,7 @@ describe('injectDevtoolsPanel', () => {
3438
mockElementRef = new ElementRef(document.createElement('div'))
3539
TestBed.configureTestingModule({
3640
providers: [
41+
provideExperimentalZonelessChangeDetection(),
3742
provideTanStackQuery(queryClient),
3843
{ provide: ElementRef, useValue: signal(mockElementRef) },
3944
],
@@ -56,7 +61,7 @@ describe('injectDevtoolsPanel', () => {
5661
})
5762
})
5863

59-
it('should initialize TanstackQueryDevtoolsPanel', fakeAsync(() => {
64+
it('should initialize TanstackQueryDevtoolsPanel', () => {
6065
TestBed.runInInjectionContext(() => {
6166
injectDevtoolsPanel(() => ({
6267
hostElement: TestBed.inject(ElementRef),
@@ -66,9 +71,9 @@ describe('injectDevtoolsPanel', () => {
6671
TestBed.flushEffects()
6772

6873
expect(mocks.mockTanstackQueryDevtoolsPanel).toHaveBeenCalledTimes(1)
69-
}))
74+
})
7075

71-
it('should destroy TanstackQueryDevtoolsPanel', fakeAsync(() => {
76+
it('should destroy TanstackQueryDevtoolsPanel', () => {
7277
const result = TestBed.runInInjectionContext(() => {
7378
return injectDevtoolsPanel(() => ({
7479
hostElement: TestBed.inject(ElementRef),
@@ -80,9 +85,9 @@ describe('injectDevtoolsPanel', () => {
8085
result.destroy()
8186

8287
expect(mockDevtoolsPanelInstance.unmount).toHaveBeenCalledTimes(1)
83-
}))
88+
})
8489

85-
it('should destroy TanstackQueryDevtoolsPanel when hostElement is removed', fakeAsync(() => {
90+
it('should destroy TanstackQueryDevtoolsPanel when hostElement is removed', () => {
8691
const hostElement = signal<ElementRef>(mockElementRef)
8792

8893
TestBed.runInInjectionContext(() => {
@@ -100,9 +105,9 @@ describe('injectDevtoolsPanel', () => {
100105
TestBed.flushEffects()
101106

102107
expect(mockDevtoolsPanelInstance.unmount).toHaveBeenCalledTimes(1)
103-
}))
108+
})
104109

105-
it('should update client', fakeAsync(() => {
110+
it('should update client', () => {
106111
const client = signal(new QueryClient())
107112

108113
TestBed.runInInjectionContext(() => {
@@ -121,9 +126,9 @@ describe('injectDevtoolsPanel', () => {
121126
TestBed.flushEffects()
122127

123128
expect(mockDevtoolsPanelInstance.setClient).toHaveBeenCalledTimes(1)
124-
}))
129+
})
125130

126-
it('should update error types', fakeAsync(() => {
131+
it('should update error types', () => {
127132
const errorTypes = signal([])
128133

129134
TestBed.runInInjectionContext(() => {
@@ -142,9 +147,9 @@ describe('injectDevtoolsPanel', () => {
142147
TestBed.flushEffects()
143148

144149
expect(mockDevtoolsPanelInstance.setErrorTypes).toHaveBeenCalledTimes(1)
145-
}))
150+
})
146151

147-
it('should update onclose', fakeAsync(() => {
152+
it('should update onclose', () => {
148153
const functionA = () => {}
149154
const functionB = () => {}
150155

@@ -166,5 +171,5 @@ describe('injectDevtoolsPanel', () => {
166171
TestBed.flushEffects()
167172

168173
expect(mockDevtoolsPanelInstance.setOnClose).toHaveBeenCalledTimes(1)
169-
}))
174+
})
170175
})

‎packages/angular-query-devtools-experimental/src/test-setup.ts

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,3 @@
1-
import '@analogjs/vite-plugin-angular/setup-vitest'
2-
31
import {
42
BrowserDynamicTestingModule,
53
platformBrowserDynamicTesting,

‎packages/angular-query-experimental/package.json

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -68,7 +68,6 @@
6868
"@tanstack/query-devtools": "workspace:*"
6969
},
7070
"devDependencies": {
71-
"@analogjs/vite-plugin-angular": "^1.6.4",
7271
"@angular/compiler": "^19.1.0-next.0",
7372
"@angular/core": "^19.1.0-next.0",
7473
"@angular/platform-browser": "^19.1.0-next.0",

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

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,9 @@
11
import { TestBed } from '@angular/core/testing'
22
import { afterEach } from 'vitest'
3-
import { Injector } from '@angular/core'
3+
import {
4+
Injector,
5+
provideExperimentalZonelessChangeDetection,
6+
} from '@angular/core'
47
import { QueryClient, injectInfiniteQuery, provideTanStackQuery } from '..'
58
import { expectSignals, infiniteFetcher } from './test-utils'
69

@@ -15,7 +18,10 @@ describe('injectInfiniteQuery', () => {
1518
queryClient = new QueryClient()
1619
vi.useFakeTimers()
1720
TestBed.configureTestingModule({
18-
providers: [provideTanStackQuery(queryClient)],
21+
providers: [
22+
provideExperimentalZonelessChangeDetection(),
23+
provideTanStackQuery(queryClient),
24+
],
1925
})
2026
})
2127

‎packages/angular-query-experimental/src/__tests__/inject-is-fetching.test.ts

Lines changed: 22 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,9 @@
1-
import { TestBed, fakeAsync, flush, tick } from '@angular/core/testing'
1+
import { TestBed } from '@angular/core/testing'
22
import { beforeEach, describe, expect } from 'vitest'
3-
import { Injector } from '@angular/core'
3+
import {
4+
Injector,
5+
provideExperimentalZonelessChangeDetection,
6+
} from '@angular/core'
47
import {
58
QueryClient,
69
injectIsFetching,
@@ -9,18 +12,30 @@ import {
912
} from '..'
1013
import { delayedFetcher } from './test-utils'
1114

15+
const QUERY_DURATION = 100
16+
17+
const resolveQueries = () => vi.advanceTimersByTimeAsync(QUERY_DURATION)
18+
1219
describe('injectIsFetching', () => {
1320
let queryClient: QueryClient
1421

1522
beforeEach(() => {
23+
vi.useFakeTimers()
1624
queryClient = new QueryClient()
1725

1826
TestBed.configureTestingModule({
19-
providers: [provideTanStackQuery(queryClient)],
27+
providers: [
28+
provideExperimentalZonelessChangeDetection(),
29+
provideTanStackQuery(queryClient),
30+
],
2031
})
2132
})
2233

23-
test('Returns number of fetching queries', fakeAsync(() => {
34+
afterEach(() => {
35+
vi.useRealTimers()
36+
})
37+
38+
test('Returns number of fetching queries', async () => {
2439
const isFetching = TestBed.runInInjectionContext(() => {
2540
injectQuery(() => ({
2641
queryKey: ['isFetching1'],
@@ -29,12 +44,12 @@ describe('injectIsFetching', () => {
2944
return injectIsFetching()
3045
})
3146

32-
tick()
47+
vi.advanceTimersByTime(1)
3348

3449
expect(isFetching()).toStrictEqual(1)
35-
flush()
50+
await resolveQueries()
3651
expect(isFetching()).toStrictEqual(0)
37-
}))
52+
})
3853

3954
describe('injection context', () => {
4055
test('throws NG0203 with descriptive error outside injection context', () => {

‎packages/angular-query-experimental/src/__tests__/inject-is-mutating.test.ts

Lines changed: 17 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,9 @@
11
import { beforeEach, describe } from 'vitest'
2-
import { TestBed, fakeAsync, tick } from '@angular/core/testing'
3-
import { Injector } from '@angular/core'
2+
import { TestBed } from '@angular/core/testing'
3+
import {
4+
Injector,
5+
provideExperimentalZonelessChangeDetection,
6+
} from '@angular/core'
47
import {
58
QueryClient,
69
injectIsMutating,
@@ -13,14 +16,22 @@ describe('injectIsMutating', () => {
1316
let queryClient: QueryClient
1417

1518
beforeEach(() => {
19+
vi.useFakeTimers()
1620
queryClient = new QueryClient()
1721

1822
TestBed.configureTestingModule({
19-
providers: [provideTanStackQuery(queryClient)],
23+
providers: [
24+
provideExperimentalZonelessChangeDetection(),
25+
provideTanStackQuery(queryClient),
26+
],
2027
})
2128
})
2229

23-
test('should properly return isMutating state', fakeAsync(() => {
30+
afterEach(() => {
31+
vi.useRealTimers()
32+
})
33+
34+
test('should properly return isMutating state', async () => {
2435
TestBed.runInInjectionContext(() => {
2536
const isMutating = injectIsMutating()
2637
const mutation = injectMutation(() => ({
@@ -34,11 +45,11 @@ describe('injectIsMutating', () => {
3445
par1: 'par1',
3546
})
3647

37-
tick()
48+
vi.advanceTimersByTime(1)
3849

3950
expect(isMutating()).toBe(1)
4051
})
41-
}))
52+
})
4253

4354
describe('injection context', () => {
4455
test('throws NG0203 with descriptive error outside injection context', () => {

‎packages/angular-query-experimental/src/__tests__/inject-mutation-state.test.ts

Lines changed: 11 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,10 @@
1-
import { Component, Injector, input, signal } from '@angular/core'
1+
import {
2+
Component,
3+
Injector,
4+
input,
5+
provideExperimentalZonelessChangeDetection,
6+
signal,
7+
} from '@angular/core'
28
import { TestBed } from '@angular/core/testing'
39
import { describe, expect, test, vi } from 'vitest'
410
import { By } from '@angular/platform-browser'
@@ -21,7 +27,10 @@ describe('injectMutationState', () => {
2127
queryClient = new QueryClient()
2228
vi.useFakeTimers()
2329
TestBed.configureTestingModule({
24-
providers: [provideTanStackQuery(queryClient)],
30+
providers: [
31+
provideExperimentalZonelessChangeDetection(),
32+
provideTanStackQuery(queryClient),
33+
],
2534
})
2635
})
2736

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

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@ import {
44
Injector,
55
inject,
66
input,
7+
provideExperimentalZonelessChangeDetection,
78
signal,
89
} from '@angular/core'
910
import { TestBed } from '@angular/core/testing'
@@ -28,7 +29,10 @@ describe('injectMutation', () => {
2829
queryClient = new QueryClient()
2930
vi.useFakeTimers()
3031
TestBed.configureTestingModule({
31-
providers: [provideTanStackQuery(queryClient)],
32+
providers: [
33+
provideExperimentalZonelessChangeDetection(),
34+
provideTanStackQuery(queryClient),
35+
],
3236
})
3337
})
3438

0 commit comments

Comments
 (0)