@tanstack/query-core 5.59.16 → 5.59.20
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/build/legacy/queriesObserver.cjs +8 -0
- package/build/legacy/queriesObserver.cjs.map +1 -1
- package/build/legacy/queriesObserver.js +8 -0
- package/build/legacy/queriesObserver.js.map +1 -1
- package/build/modern/queriesObserver.cjs +8 -0
- package/build/modern/queriesObserver.cjs.map +1 -1
- package/build/modern/queriesObserver.js +8 -0
- package/build/modern/queriesObserver.js.map +1 -1
- package/package.json +3 -2
- package/src/queriesObserver.ts +9 -0
- package/src/__tests__/OmitKeyof.test-d.ts +0 -175
- package/src/__tests__/focusManager.test.tsx +0 -163
- package/src/__tests__/hydration.test.tsx +0 -1069
- package/src/__tests__/infiniteQueryBehavior.test.tsx +0 -427
- package/src/__tests__/infiniteQueryObserver.test-d.tsx +0 -64
- package/src/__tests__/infiniteQueryObserver.test.tsx +0 -198
- package/src/__tests__/mutationCache.test.tsx +0 -376
- package/src/__tests__/mutationObserver.test.tsx +0 -326
- package/src/__tests__/mutations.test.tsx +0 -603
- package/src/__tests__/notifyManager.test.tsx +0 -85
- package/src/__tests__/onlineManager.test.tsx +0 -168
- package/src/__tests__/queriesObserver.test.tsx +0 -267
- package/src/__tests__/query.test.tsx +0 -1049
- package/src/__tests__/queryCache.test.tsx +0 -350
- package/src/__tests__/queryClient.test-d.tsx +0 -156
- package/src/__tests__/queryClient.test.tsx +0 -2031
- package/src/__tests__/queryObserver.test-d.tsx +0 -108
- package/src/__tests__/queryObserver.test.tsx +0 -1236
- package/src/__tests__/utils.test.tsx +0 -468
- package/src/__tests__/utils.ts +0 -59
|
@@ -1,163 +0,0 @@
|
|
|
1
|
-
import { beforeEach, describe, expect, it, test, vi } from 'vitest'
|
|
2
|
-
import { sleep } from '../utils'
|
|
3
|
-
import { FocusManager } from '../focusManager'
|
|
4
|
-
import { setIsServer } from './utils'
|
|
5
|
-
|
|
6
|
-
describe('focusManager', () => {
|
|
7
|
-
let focusManager: FocusManager
|
|
8
|
-
beforeEach(() => {
|
|
9
|
-
vi.resetModules()
|
|
10
|
-
focusManager = new FocusManager()
|
|
11
|
-
})
|
|
12
|
-
|
|
13
|
-
it('should call previous remove handler when replacing an event listener', () => {
|
|
14
|
-
const remove1Spy = vi.fn()
|
|
15
|
-
const remove2Spy = vi.fn()
|
|
16
|
-
|
|
17
|
-
focusManager.setEventListener(() => remove1Spy)
|
|
18
|
-
focusManager.setEventListener(() => remove2Spy)
|
|
19
|
-
|
|
20
|
-
expect(remove1Spy).toHaveBeenCalledTimes(1)
|
|
21
|
-
expect(remove2Spy).not.toHaveBeenCalled()
|
|
22
|
-
})
|
|
23
|
-
|
|
24
|
-
it('should use focused boolean arg', async () => {
|
|
25
|
-
let count = 0
|
|
26
|
-
|
|
27
|
-
const setup = (setFocused: (focused?: boolean) => void) => {
|
|
28
|
-
setTimeout(() => {
|
|
29
|
-
count++
|
|
30
|
-
setFocused(true)
|
|
31
|
-
}, 20)
|
|
32
|
-
return () => void 0
|
|
33
|
-
}
|
|
34
|
-
|
|
35
|
-
focusManager.setEventListener(setup)
|
|
36
|
-
|
|
37
|
-
await sleep(30)
|
|
38
|
-
expect(count).toEqual(1)
|
|
39
|
-
expect(focusManager.isFocused()).toBeTruthy()
|
|
40
|
-
})
|
|
41
|
-
|
|
42
|
-
it('should return true for isFocused if document is undefined', async () => {
|
|
43
|
-
const { document } = globalThis
|
|
44
|
-
|
|
45
|
-
// @ts-expect-error
|
|
46
|
-
delete globalThis.document
|
|
47
|
-
|
|
48
|
-
focusManager.setFocused()
|
|
49
|
-
expect(focusManager.isFocused()).toBeTruthy()
|
|
50
|
-
globalThis.document = document
|
|
51
|
-
})
|
|
52
|
-
|
|
53
|
-
test('cleanup (removeEventListener) should not be called if window is not defined', async () => {
|
|
54
|
-
const restoreIsServer = setIsServer(true)
|
|
55
|
-
|
|
56
|
-
const removeEventListenerSpy = vi.spyOn(globalThis, 'removeEventListener')
|
|
57
|
-
|
|
58
|
-
const unsubscribe = focusManager.subscribe(() => undefined)
|
|
59
|
-
|
|
60
|
-
unsubscribe()
|
|
61
|
-
|
|
62
|
-
expect(removeEventListenerSpy).not.toHaveBeenCalled()
|
|
63
|
-
|
|
64
|
-
restoreIsServer()
|
|
65
|
-
})
|
|
66
|
-
|
|
67
|
-
test('cleanup (removeEventListener) should not be called if window.addEventListener is not defined', async () => {
|
|
68
|
-
const { addEventListener } = globalThis.window
|
|
69
|
-
|
|
70
|
-
// @ts-expect-error
|
|
71
|
-
globalThis.window.addEventListener = undefined
|
|
72
|
-
|
|
73
|
-
const removeEventListenerSpy = vi.spyOn(globalThis, 'removeEventListener')
|
|
74
|
-
|
|
75
|
-
const unsubscribe = focusManager.subscribe(() => undefined)
|
|
76
|
-
|
|
77
|
-
unsubscribe()
|
|
78
|
-
|
|
79
|
-
expect(removeEventListenerSpy).not.toHaveBeenCalled()
|
|
80
|
-
|
|
81
|
-
globalThis.window.addEventListener = addEventListener
|
|
82
|
-
})
|
|
83
|
-
|
|
84
|
-
it('should replace default window listener when a new event listener is set', async () => {
|
|
85
|
-
const unsubscribeSpy = vi.fn().mockImplementation(() => undefined)
|
|
86
|
-
const handlerSpy = vi.fn().mockImplementation(() => unsubscribeSpy)
|
|
87
|
-
|
|
88
|
-
focusManager.setEventListener(() => handlerSpy())
|
|
89
|
-
|
|
90
|
-
const unsubscribe = focusManager.subscribe(() => undefined)
|
|
91
|
-
|
|
92
|
-
// Should call the custom event once
|
|
93
|
-
expect(handlerSpy).toHaveBeenCalledTimes(1)
|
|
94
|
-
|
|
95
|
-
unsubscribe()
|
|
96
|
-
|
|
97
|
-
// Should unsubscribe our event event
|
|
98
|
-
expect(unsubscribeSpy).toHaveBeenCalledTimes(1)
|
|
99
|
-
|
|
100
|
-
handlerSpy.mockRestore()
|
|
101
|
-
unsubscribeSpy.mockRestore()
|
|
102
|
-
})
|
|
103
|
-
|
|
104
|
-
test('should call removeEventListener when last listener unsubscribes', () => {
|
|
105
|
-
const addEventListenerSpy = vi.spyOn(globalThis.window, 'addEventListener')
|
|
106
|
-
|
|
107
|
-
const removeEventListenerSpy = vi.spyOn(
|
|
108
|
-
globalThis.window,
|
|
109
|
-
'removeEventListener',
|
|
110
|
-
)
|
|
111
|
-
|
|
112
|
-
const unsubscribe1 = focusManager.subscribe(() => undefined)
|
|
113
|
-
const unsubscribe2 = focusManager.subscribe(() => undefined)
|
|
114
|
-
expect(addEventListenerSpy).toHaveBeenCalledTimes(1) // visibilitychange event
|
|
115
|
-
|
|
116
|
-
unsubscribe1()
|
|
117
|
-
expect(removeEventListenerSpy).toHaveBeenCalledTimes(0)
|
|
118
|
-
unsubscribe2()
|
|
119
|
-
expect(removeEventListenerSpy).toHaveBeenCalledTimes(1) // visibilitychange event
|
|
120
|
-
})
|
|
121
|
-
|
|
122
|
-
test('should keep setup function even if last listener unsubscribes', () => {
|
|
123
|
-
const setupSpy = vi.fn().mockImplementation(() => () => undefined)
|
|
124
|
-
|
|
125
|
-
focusManager.setEventListener(setupSpy)
|
|
126
|
-
|
|
127
|
-
const unsubscribe1 = focusManager.subscribe(() => undefined)
|
|
128
|
-
|
|
129
|
-
expect(setupSpy).toHaveBeenCalledTimes(1)
|
|
130
|
-
|
|
131
|
-
unsubscribe1()
|
|
132
|
-
|
|
133
|
-
const unsubscribe2 = focusManager.subscribe(() => undefined)
|
|
134
|
-
|
|
135
|
-
expect(setupSpy).toHaveBeenCalledTimes(2)
|
|
136
|
-
|
|
137
|
-
unsubscribe2()
|
|
138
|
-
})
|
|
139
|
-
|
|
140
|
-
test('should call listeners when setFocused is called', () => {
|
|
141
|
-
const listener = vi.fn()
|
|
142
|
-
|
|
143
|
-
focusManager.subscribe(listener)
|
|
144
|
-
|
|
145
|
-
focusManager.setFocused(true)
|
|
146
|
-
focusManager.setFocused(true)
|
|
147
|
-
|
|
148
|
-
expect(listener).toHaveBeenCalledTimes(1)
|
|
149
|
-
expect(listener).toHaveBeenNthCalledWith(1, true)
|
|
150
|
-
|
|
151
|
-
focusManager.setFocused(false)
|
|
152
|
-
focusManager.setFocused(false)
|
|
153
|
-
|
|
154
|
-
expect(listener).toHaveBeenCalledTimes(2)
|
|
155
|
-
expect(listener).toHaveBeenNthCalledWith(2, false)
|
|
156
|
-
|
|
157
|
-
focusManager.setFocused(undefined)
|
|
158
|
-
focusManager.setFocused(undefined)
|
|
159
|
-
|
|
160
|
-
expect(listener).toHaveBeenCalledTimes(3)
|
|
161
|
-
expect(listener).toHaveBeenNthCalledWith(3, true)
|
|
162
|
-
})
|
|
163
|
-
})
|