@tanstack/solid-query 4.24.9 → 5.0.0-alpha.0

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.
Files changed (158) hide show
  1. package/build/cjs/index.js +298 -0
  2. package/build/cjs/index.js.map +1 -0
  3. package/build/esm/index.js +283 -0
  4. package/build/esm/index.js.map +1 -0
  5. package/build/source/QueryClientProvider.jsx +21 -0
  6. package/build/source/__tests__/QueryClientProvider.test.jsx +120 -0
  7. package/build/{solid → source}/__tests__/createInfiniteQuery.test.jsx +228 -372
  8. package/build/{solid → source}/__tests__/createMutation.test.jsx +174 -165
  9. package/build/{solid → source}/__tests__/createQueries.test.jsx +86 -367
  10. package/build/{solid → source}/__tests__/createQuery.test.jsx +991 -943
  11. package/build/{solid → source}/__tests__/createQuery.types.test.jsx +35 -24
  12. package/build/{solid → source}/__tests__/suspense.test.jsx +177 -148
  13. package/build/{solid → source}/__tests__/transition.test.jsx +7 -4
  14. package/build/{solid → source}/__tests__/useIsFetching.test.jsx +68 -85
  15. package/build/{solid → source}/__tests__/useIsMutating.test.jsx +78 -93
  16. package/build/{solid → source}/__tests__/utils.jsx +3 -9
  17. package/build/source/createBaseQuery.js +147 -0
  18. package/build/source/createInfiniteQuery.js +6 -0
  19. package/build/{solid → source}/createMutation.js +7 -9
  20. package/build/source/createQueries.js +32 -0
  21. package/build/source/createQuery.js +6 -0
  22. package/build/{solid → source}/index.js +5 -3
  23. package/build/source/setBatchUpdatesFn.js +3 -0
  24. package/build/source/useIsFetching.js +12 -0
  25. package/build/source/useIsMutating.js +12 -0
  26. package/build/source/utils.js +7 -0
  27. package/build/types/QueryClientProvider.d.ts +9 -0
  28. package/build/{lib → types}/__tests__/utils.d.ts +3 -8
  29. package/build/types/createBaseQuery.d.ts +4 -0
  30. package/build/types/createInfiniteQuery.d.ts +3 -0
  31. package/build/types/createMutation.d.ts +3 -0
  32. package/build/{lib → types}/createQueries.d.ts +10 -8
  33. package/build/types/createQuery.d.ts +11 -0
  34. package/build/{lib → types}/index.d.ts +4 -3
  35. package/build/types/setBatchUpdatesFn.d.ts +1 -0
  36. package/build/types/types.d.ts +33 -0
  37. package/build/types/useIsFetching.d.ts +8 -0
  38. package/build/types/useIsMutating.d.ts +8 -0
  39. package/build/types/utils.d.ts +1 -0
  40. package/build/umd/index.js +2 -0
  41. package/build/umd/index.js.map +1 -0
  42. package/package.json +25 -17
  43. package/src/QueryClientProvider.tsx +17 -86
  44. package/src/__tests__/QueryClientProvider.test.tsx +37 -140
  45. package/src/__tests__/createInfiniteQuery.test.tsx +277 -508
  46. package/src/__tests__/createMutation.test.tsx +177 -225
  47. package/src/__tests__/createQueries.test.tsx +180 -528
  48. package/src/__tests__/createQuery.test.tsx +970 -1200
  49. package/src/__tests__/createQuery.types.test.tsx +30 -25
  50. package/src/__tests__/suspense.test.tsx +141 -178
  51. package/src/__tests__/transition.test.tsx +7 -4
  52. package/src/__tests__/useIsFetching.test.tsx +77 -122
  53. package/src/__tests__/useIsMutating.test.tsx +83 -128
  54. package/src/__tests__/utils.tsx +4 -11
  55. package/src/createBaseQuery.ts +148 -60
  56. package/src/createInfiniteQuery.ts +15 -94
  57. package/src/createMutation.ts +9 -63
  58. package/src/createQueries.ts +44 -55
  59. package/src/createQuery.ts +42 -127
  60. package/src/index.ts +6 -3
  61. package/src/setBatchUpdatesFn.ts +4 -0
  62. package/src/types.ts +81 -75
  63. package/src/useIsFetching.ts +12 -44
  64. package/src/useIsMutating.ts +13 -29
  65. package/src/utils.ts +5 -79
  66. package/build/lib/QueryClientProvider.d.ts +0 -24
  67. package/build/lib/QueryClientProvider.esm.js +0 -74
  68. package/build/lib/QueryClientProvider.esm.js.map +0 -1
  69. package/build/lib/QueryClientProvider.js +0 -80
  70. package/build/lib/QueryClientProvider.js.map +0 -1
  71. package/build/lib/QueryClientProvider.mjs +0 -74
  72. package/build/lib/QueryClientProvider.mjs.map +0 -1
  73. package/build/lib/createBaseQuery.d.ts +0 -4
  74. package/build/lib/createBaseQuery.esm.js +0 -93
  75. package/build/lib/createBaseQuery.esm.js.map +0 -1
  76. package/build/lib/createBaseQuery.js +0 -97
  77. package/build/lib/createBaseQuery.js.map +0 -1
  78. package/build/lib/createBaseQuery.mjs +0 -93
  79. package/build/lib/createBaseQuery.mjs.map +0 -1
  80. package/build/lib/createInfiniteQuery.d.ts +0 -5
  81. package/build/lib/createInfiniteQuery.esm.js +0 -20
  82. package/build/lib/createInfiniteQuery.esm.js.map +0 -1
  83. package/build/lib/createInfiniteQuery.js +0 -24
  84. package/build/lib/createInfiniteQuery.js.map +0 -1
  85. package/build/lib/createInfiniteQuery.mjs +0 -20
  86. package/build/lib/createInfiniteQuery.mjs.map +0 -1
  87. package/build/lib/createMutation.d.ts +0 -6
  88. package/build/lib/createMutation.esm.js +0 -45
  89. package/build/lib/createMutation.esm.js.map +0 -1
  90. package/build/lib/createMutation.js +0 -49
  91. package/build/lib/createMutation.js.map +0 -1
  92. package/build/lib/createMutation.mjs +0 -45
  93. package/build/lib/createMutation.mjs.map +0 -1
  94. package/build/lib/createQueries.esm.js +0 -54
  95. package/build/lib/createQueries.esm.js.map +0 -1
  96. package/build/lib/createQueries.js +0 -58
  97. package/build/lib/createQueries.js.map +0 -1
  98. package/build/lib/createQueries.mjs +0 -54
  99. package/build/lib/createQueries.mjs.map +0 -1
  100. package/build/lib/createQuery.d.ts +0 -23
  101. package/build/lib/createQuery.esm.js +0 -25
  102. package/build/lib/createQuery.esm.js.map +0 -1
  103. package/build/lib/createQuery.js +0 -29
  104. package/build/lib/createQuery.js.map +0 -1
  105. package/build/lib/createQuery.mjs +0 -25
  106. package/build/lib/createQuery.mjs.map +0 -1
  107. package/build/lib/index.esm.js +0 -9
  108. package/build/lib/index.esm.js.map +0 -1
  109. package/build/lib/index.js +0 -31
  110. package/build/lib/index.js.map +0 -1
  111. package/build/lib/index.mjs +0 -9
  112. package/build/lib/index.mjs.map +0 -1
  113. package/build/lib/types.d.ts +0 -47
  114. package/build/lib/useIsFetching.d.ts +0 -7
  115. package/build/lib/useIsFetching.esm.js +0 -29
  116. package/build/lib/useIsFetching.esm.js.map +0 -1
  117. package/build/lib/useIsFetching.js +0 -33
  118. package/build/lib/useIsFetching.js.map +0 -1
  119. package/build/lib/useIsFetching.mjs +0 -29
  120. package/build/lib/useIsFetching.mjs.map +0 -1
  121. package/build/lib/useIsMutating.d.ts +0 -8
  122. package/build/lib/useIsMutating.esm.js +0 -22
  123. package/build/lib/useIsMutating.esm.js.map +0 -1
  124. package/build/lib/useIsMutating.js +0 -26
  125. package/build/lib/useIsMutating.js.map +0 -1
  126. package/build/lib/useIsMutating.mjs +0 -22
  127. package/build/lib/useIsMutating.mjs.map +0 -1
  128. package/build/lib/utils.d.ts +0 -14
  129. package/build/lib/utils.esm.js +0 -63
  130. package/build/lib/utils.esm.js.map +0 -1
  131. package/build/lib/utils.js +0 -72
  132. package/build/lib/utils.js.map +0 -1
  133. package/build/lib/utils.mjs +0 -63
  134. package/build/lib/utils.mjs.map +0 -1
  135. package/build/solid/QueryClientProvider.jsx +0 -49
  136. package/build/solid/__tests__/QueryClientProvider.test.jsx +0 -185
  137. package/build/solid/createBaseQuery.js +0 -81
  138. package/build/solid/createInfiniteQuery.js +0 -16
  139. package/build/solid/createQueries.js +0 -39
  140. package/build/solid/createQuery.js +0 -16
  141. package/build/solid/useIsFetching.js +0 -23
  142. package/build/solid/useIsMutating.js +0 -16
  143. package/build/solid/utils.js +0 -45
  144. package/build/umd/index.development.js +0 -3572
  145. package/build/umd/index.development.js.map +0 -1
  146. package/build/umd/index.production.js +0 -2
  147. package/build/umd/index.production.js.map +0 -1
  148. /package/build/{solid → source}/types.js +0 -0
  149. /package/build/{lib → types}/__tests__/QueryClientProvider.test.d.ts +0 -0
  150. /package/build/{lib → types}/__tests__/createInfiniteQuery.test.d.ts +0 -0
  151. /package/build/{lib → types}/__tests__/createMutation.test.d.ts +0 -0
  152. /package/build/{lib → types}/__tests__/createQueries.test.d.ts +0 -0
  153. /package/build/{lib → types}/__tests__/createQuery.test.d.ts +0 -0
  154. /package/build/{lib → types}/__tests__/createQuery.types.test.d.ts +0 -0
  155. /package/build/{lib → types}/__tests__/suspense.test.d.ts +0 -0
  156. /package/build/{lib → types}/__tests__/transition.test.d.ts +0 -0
  157. /package/build/{lib → types}/__tests__/useIsFetching.test.d.ts +0 -0
  158. /package/build/{lib → types}/__tests__/useIsMutating.test.d.ts +0 -0
@@ -1,14 +1,6 @@
1
1
  import { fireEvent, render, screen, waitFor } from 'solid-testing-library'
2
2
 
3
- import {
4
- createContext,
5
- createEffect,
6
- createRenderEffect,
7
- createSignal,
8
- ErrorBoundary,
9
- Show,
10
- } from 'solid-js'
11
- import type { QueryClient } from '..'
3
+ import { createEffect, createRenderEffect, createSignal, Show } from 'solid-js'
12
4
  import { createQuery, QueryCache, QueryClientProvider, useIsFetching } from '..'
13
5
  import { createQueryClient, queryKey, setActTimeout, sleep } from './utils'
14
6
 
@@ -27,18 +19,14 @@ describe('useIsFetching', () => {
27
19
  function Query() {
28
20
  const [ready, setReady] = createSignal(false)
29
21
 
30
- createQuery(
31
- key,
32
- async () => {
22
+ createQuery(() => ({
23
+ queryKey: key,
24
+ queryFn: async () => {
33
25
  await sleep(50)
34
26
  return 'test'
35
27
  },
36
- {
37
- get enabled() {
38
- return ready()
39
- },
40
- },
41
- )
28
+ enabled: ready(),
29
+ }))
42
30
 
43
31
  return <button onClick={() => setReady(true)}>setReady</button>
44
32
  }
@@ -82,18 +70,24 @@ describe('useIsFetching', () => {
82
70
  }
83
71
 
84
72
  function FirstQuery() {
85
- createQuery(key1, async () => {
86
- await sleep(100)
87
- return 'data'
88
- })
73
+ createQuery(() => ({
74
+ queryKey: key1,
75
+ queryFn: async () => {
76
+ await sleep(150)
77
+ return 'data'
78
+ },
79
+ }))
89
80
  return null
90
81
  }
91
82
 
92
83
  function SecondQuery() {
93
- createQuery(key2, async () => {
94
- await sleep(100)
95
- return 'data'
96
- })
84
+ createQuery(() => ({
85
+ queryKey: key2,
86
+ queryFn: async () => {
87
+ await sleep(200)
88
+ return 'data'
89
+ },
90
+ }))
97
91
  return null
98
92
  }
99
93
 
@@ -103,7 +97,7 @@ describe('useIsFetching', () => {
103
97
  createEffect(() => {
104
98
  setActTimeout(() => {
105
99
  setRenderSecond(true)
106
- }, 50)
100
+ }, 100)
107
101
  })
108
102
 
109
103
  return (
@@ -134,24 +128,34 @@ describe('useIsFetching', () => {
134
128
  const isFetchings: number[] = []
135
129
 
136
130
  function One() {
137
- createQuery(key1, async () => {
138
- await sleep(10)
139
- return 'test'
140
- })
131
+ createQuery(() => ({
132
+ queryKey: key1,
133
+ queryFn: async () => {
134
+ await sleep(10)
135
+ return 'test'
136
+ },
137
+ }))
141
138
  return null
142
139
  }
143
140
 
144
141
  function Two() {
145
- createQuery(key2, async () => {
146
- await sleep(20)
147
- return 'test'
148
- })
142
+ createQuery(() => ({
143
+ queryKey: key2,
144
+ queryFn: async () => {
145
+ await sleep(20)
146
+ return 'test'
147
+ },
148
+ }))
149
149
  return null
150
150
  }
151
151
 
152
152
  function Page() {
153
153
  const [started, setStarted] = createSignal(false)
154
- const isFetching = useIsFetching(key1)
154
+ const isFetching = useIsFetching(() => ({
155
+ filters: {
156
+ queryKey: key1,
157
+ },
158
+ }))
155
159
 
156
160
  createRenderEffect(() => {
157
161
  isFetchings.push(isFetching())
@@ -185,97 +189,18 @@ describe('useIsFetching', () => {
185
189
  expect(isFetchings).toEqual(expect.not.arrayContaining([2]))
186
190
  })
187
191
 
188
- describe('with custom context', () => {
189
- it('should update as queries start and stop fetching', async () => {
190
- const context = createContext<QueryClient | undefined>(undefined)
191
-
192
- const queryCache = new QueryCache()
193
- const queryClient = createQueryClient({ queryCache })
194
- const key = queryKey()
195
-
196
- function Page() {
197
- const [ready, setReady] = createSignal(false)
198
-
199
- const isFetching = useIsFetching(undefined, { context: context })
200
-
201
- createQuery(
202
- key,
203
- async () => {
204
- await sleep(50)
205
- return 'test'
206
- },
207
- {
208
- get enabled() {
209
- return ready()
210
- },
211
- context,
212
- },
213
- )
214
-
215
- return (
216
- <div>
217
- <div>isFetching: {isFetching}</div>
218
- <button onClick={() => setReady(true)}>setReady</button>
219
- </div>
220
- )
221
- }
222
-
223
- render(() => (
224
- <QueryClientProvider client={queryClient} context={context}>
225
- <Page />
226
- </QueryClientProvider>
227
- ))
228
-
229
- await screen.findByText('isFetching: 0')
230
- fireEvent.click(screen.getByRole('button', { name: /setReady/i }))
231
- await screen.findByText('isFetching: 1')
232
- await screen.findByText('isFetching: 0')
233
- })
234
-
235
- it('should throw if the context is not passed to useIsFetching', async () => {
236
- const context = createContext<QueryClient | undefined>(undefined)
237
-
238
- const queryCache = new QueryCache()
239
- const queryClient = createQueryClient({ queryCache })
240
- const key = queryKey()
241
-
242
- function Page() {
243
- const isFetching = useIsFetching()
244
-
245
- createQuery(key, async () => 'test', {
246
- enabled: true,
247
- context,
248
- useErrorBoundary: true,
249
- })
250
-
251
- return (
252
- <div>
253
- <div>isFetching: {isFetching}</div>
254
- </div>
255
- )
256
- }
257
-
258
- render(() => (
259
- <QueryClientProvider client={queryClient} context={context}>
260
- <ErrorBoundary fallback={() => <div>error boundary</div>}>
261
- <Page />
262
- </ErrorBoundary>
263
- </QueryClientProvider>
264
- ))
265
-
266
- await waitFor(() => screen.getByText('error boundary'))
267
- })
268
- })
269
-
270
192
  it('should show the correct fetching state when mounted after a query', async () => {
271
193
  const queryClient = createQueryClient()
272
194
  const key = queryKey()
273
195
 
274
196
  function Page() {
275
- createQuery(key, async () => {
276
- await sleep(10)
277
- return 'test'
278
- })
197
+ createQuery(() => ({
198
+ queryKey: key,
199
+ queryFn: async () => {
200
+ await sleep(10)
201
+ return 'test'
202
+ },
203
+ }))
279
204
 
280
205
  const isFetching = useIsFetching()
281
206
 
@@ -295,4 +220,34 @@ describe('useIsFetching', () => {
295
220
  await screen.findByText('isFetching: 1')
296
221
  await screen.findByText('isFetching: 0')
297
222
  })
223
+
224
+ it('should use provided custom queryClient', async () => {
225
+ const queryClient = createQueryClient()
226
+ const key = queryKey()
227
+
228
+ function Page() {
229
+ createQuery(
230
+ () => ({
231
+ queryKey: key,
232
+ queryFn: async () => {
233
+ await sleep(10)
234
+ return 'test'
235
+ },
236
+ }),
237
+ () => queryClient,
238
+ )
239
+
240
+ const isFetching = useIsFetching(() => ({ queryClient }))
241
+
242
+ return (
243
+ <div>
244
+ <div>isFetching: {isFetching}</div>
245
+ </div>
246
+ )
247
+ }
248
+
249
+ render(() => <Page></Page>)
250
+
251
+ await screen.findByText('isFetching: 1')
252
+ })
298
253
  })
@@ -1,20 +1,8 @@
1
1
  import { fireEvent, screen, waitFor } from 'solid-testing-library'
2
- import {
3
- createMutation,
4
- QueryClient,
5
- QueryClientProvider,
6
- useIsMutating,
7
- } from '..'
2
+ import { createMutation, QueryClientProvider, useIsMutating } from '..'
8
3
  import { createQueryClient, sleep } from './utils'
9
4
 
10
- import {
11
- createContext,
12
- createEffect,
13
- createRenderEffect,
14
- createSignal,
15
- ErrorBoundary,
16
- Show,
17
- } from 'solid-js'
5
+ import { createEffect, createRenderEffect, createSignal, Show } from 'solid-js'
18
6
  import { render } from 'solid-testing-library'
19
7
  import * as MutationCacheModule from '../../../query-core/src/mutationCache'
20
8
  import { setActTimeout } from './utils'
@@ -33,14 +21,20 @@ describe('useIsMutating', () => {
33
21
  }
34
22
 
35
23
  function Mutations() {
36
- const { mutate: mutate1 } = createMutation(['mutation1'], async () => {
37
- await sleep(150)
38
- return 'data'
39
- })
40
- const { mutate: mutate2 } = createMutation(['mutation2'], async () => {
41
- await sleep(50)
42
- return 'data'
43
- })
24
+ const { mutate: mutate1 } = createMutation(() => ({
25
+ mutationKey: ['mutation1'],
26
+ mutationFn: async () => {
27
+ await sleep(150)
28
+ return 'data'
29
+ },
30
+ }))
31
+ const { mutate: mutate2 } = createMutation(() => ({
32
+ mutationKey: ['mutation2'],
33
+ mutationFn: async () => {
34
+ await sleep(50)
35
+ return 'data'
36
+ },
37
+ }))
44
38
 
45
39
  createEffect(() => {
46
40
  mutate1()
@@ -74,7 +68,9 @@ describe('useIsMutating', () => {
74
68
  const queryClient = createQueryClient()
75
69
 
76
70
  function IsMutating() {
77
- const isMutating = useIsMutating(['mutation1'])
71
+ const isMutating = useIsMutating(() => ({
72
+ filters: { mutationKey: ['mutation1'] },
73
+ }))
78
74
  createRenderEffect(() => {
79
75
  isMutatings.push(isMutating())
80
76
  })
@@ -82,14 +78,20 @@ describe('useIsMutating', () => {
82
78
  }
83
79
 
84
80
  function Page() {
85
- const { mutate: mutate1 } = createMutation(['mutation1'], async () => {
86
- await sleep(100)
87
- return 'data'
88
- })
89
- const { mutate: mutate2 } = createMutation(['mutation2'], async () => {
90
- await sleep(100)
91
- return 'data'
92
- })
81
+ const { mutate: mutate1 } = createMutation(() => ({
82
+ mutationKey: ['mutation1'],
83
+ mutationFn: async () => {
84
+ await sleep(100)
85
+ return 'data'
86
+ },
87
+ }))
88
+ const { mutate: mutate2 } = createMutation(() => ({
89
+ mutationKey: ['mutation2'],
90
+ mutationFn: async () => {
91
+ await sleep(100)
92
+ return 'data'
93
+ },
94
+ }))
93
95
 
94
96
  createEffect(() => {
95
97
  mutate1()
@@ -113,10 +115,12 @@ describe('useIsMutating', () => {
113
115
  const queryClient = createQueryClient()
114
116
 
115
117
  function IsMutating() {
116
- const isMutating = useIsMutating({
117
- predicate: (mutation) =>
118
- mutation.options.mutationKey?.[0] === 'mutation1',
119
- })
118
+ const isMutating = useIsMutating(() => ({
119
+ filters: {
120
+ predicate: (mutation) =>
121
+ mutation.options.mutationKey?.[0] === 'mutation1',
122
+ },
123
+ }))
120
124
  createRenderEffect(() => {
121
125
  isMutatings.push(isMutating())
122
126
  })
@@ -124,14 +128,20 @@ describe('useIsMutating', () => {
124
128
  }
125
129
 
126
130
  function Page() {
127
- const { mutate: mutate1 } = createMutation(['mutation1'], async () => {
128
- await sleep(100)
129
- return 'data'
130
- })
131
- const { mutate: mutate2 } = createMutation(['mutation2'], async () => {
132
- await sleep(100)
133
- return 'data'
134
- })
131
+ const { mutate: mutate1 } = createMutation(() => ({
132
+ mutationKey: ['mutation1'],
133
+ mutationFn: async () => {
134
+ await sleep(100)
135
+ return 'data'
136
+ },
137
+ }))
138
+ const { mutate: mutate2 } = createMutation(() => ({
139
+ mutationKey: ['mutation2'],
140
+ mutationFn: async () => {
141
+ await sleep(100)
142
+ return 'data'
143
+ },
144
+ }))
135
145
 
136
146
  createEffect(() => {
137
147
  mutate1()
@@ -176,10 +186,13 @@ describe('useIsMutating', () => {
176
186
 
177
187
  function Page() {
178
188
  const [mounted, setMounted] = createSignal(true)
179
- const { mutate: mutate1 } = createMutation(['mutation1'], async () => {
180
- await sleep(10)
181
- return 'data'
182
- })
189
+ const { mutate: mutate1 } = createMutation(() => ({
190
+ mutationKey: ['mutation1'],
191
+ mutationFn: async () => {
192
+ await sleep(10)
193
+ return 'data'
194
+ },
195
+ }))
183
196
 
184
197
  createEffect(() => {
185
198
  mutate1()
@@ -209,93 +222,35 @@ describe('useIsMutating', () => {
209
222
  MutationCacheSpy.mockRestore()
210
223
  })
211
224
 
212
- describe('with custom context', () => {
213
- it('should return the number of fetching mutations', async () => {
214
- const context = createContext<QueryClient | undefined>(undefined)
215
-
216
- const isMutatings: number[] = []
217
- const queryClient = new QueryClient()
218
-
219
- function IsMutating() {
220
- const isMutating = useIsMutating(undefined, { context })
221
-
222
- createRenderEffect(() => {
223
- isMutatings.push(isMutating())
224
- })
225
-
226
- return null
227
- }
225
+ it('should use provided custom queryClient', async () => {
226
+ const queryClient = createQueryClient()
228
227
 
229
- function Page() {
230
- const { mutate: mutate1 } = createMutation(
231
- ['mutation1'],
232
- async () => {
233
- await sleep(150)
234
- return 'data'
235
- },
236
- { context },
237
- )
238
- const { mutate: mutate2 } = createMutation(
239
- ['mutation2'],
240
- async () => {
241
- await sleep(50)
228
+ function Page() {
229
+ const isMutating = useIsMutating(() => ({ queryClient }))
230
+ const { mutate } = createMutation(
231
+ () => ({
232
+ mutationKey: ['mutation1'],
233
+ mutationFn: async () => {
234
+ await sleep(10)
242
235
  return 'data'
243
236
  },
244
- { context },
245
- )
246
-
247
- createEffect(() => {
248
- mutate1()
249
- setActTimeout(() => {
250
- mutate2()
251
- }, 50)
252
- })
253
-
254
- return <IsMutating />
255
- }
256
-
257
- render(() => (
258
- <QueryClientProvider client={queryClient} context={context}>
259
- <Page />
260
- </QueryClientProvider>
261
- ))
262
- await waitFor(() => expect(isMutatings).toEqual([0, 1, 2, 1, 0]))
263
- })
264
-
265
- it('should throw if the context is not passed to useIsMutating', async () => {
266
- const context = createContext<QueryClient | undefined>(undefined)
267
-
268
- const isMutatings: number[] = []
269
- const queryClient = new QueryClient()
270
-
271
- function IsMutating() {
272
- const isMutating = useIsMutating(undefined)
273
- isMutatings.push(isMutating())
274
- return null
275
- }
276
-
277
- function Page() {
278
- const { mutate } = createMutation(['mutation'], async () => 'data', {
279
- useErrorBoundary: true,
280
- context,
281
- })
237
+ }),
238
+ () => queryClient,
239
+ )
282
240
 
283
- createEffect(() => {
284
- mutate()
285
- })
241
+ createEffect(() => {
242
+ mutate()
243
+ })
286
244
 
287
- return <IsMutating />
288
- }
245
+ return (
246
+ <div>
247
+ <div>mutating: {isMutating}</div>
248
+ </div>
249
+ )
250
+ }
289
251
 
290
- render(() => (
291
- <QueryClientProvider client={queryClient} context={context}>
292
- <ErrorBoundary fallback={() => <div>error boundary</div>}>
293
- <Page />
294
- </ErrorBoundary>
295
- </QueryClientProvider>
296
- ))
252
+ render(() => <Page></Page>)
297
253
 
298
- await waitFor(() => screen.getByText('error boundary'))
299
- })
254
+ await waitFor(() => screen.findByText('mutating: 1'))
300
255
  })
301
256
  })
@@ -4,9 +4,9 @@ import type { ParentProps } from 'solid-js'
4
4
  import { createEffect, createSignal, onCleanup, Show } from 'solid-js'
5
5
 
6
6
  let queryKeyCount = 0
7
- export function queryKey(): () => Array<string> {
8
- const localQueryKeyCount = queryKeyCount++
9
- return () => [`query_${localQueryKeyCount}`]
7
+ export function queryKey(): Array<string> {
8
+ queryKeyCount++
9
+ return [`query_${queryKeyCount}`]
10
10
  }
11
11
 
12
12
  export const Blink = (
@@ -30,8 +30,7 @@ export const Blink = (
30
30
  }
31
31
 
32
32
  export function createQueryClient(config?: QueryClientConfig): QueryClient {
33
- jest.spyOn(console, 'error').mockImplementation(() => undefined)
34
- return new QueryClient({ logger: mockLogger, ...config })
33
+ return new QueryClient(config)
35
34
  }
36
35
 
37
36
  export function mockVisibilityState(value: DocumentVisibilityState) {
@@ -42,12 +41,6 @@ export function mockNavigatorOnLine(value: boolean) {
42
41
  return jest.spyOn(navigator, 'onLine', 'get').mockReturnValue(value)
43
42
  }
44
43
 
45
- export const mockLogger = {
46
- log: jest.fn(),
47
- warn: jest.fn(),
48
- error: jest.fn(),
49
- }
50
-
51
44
  export function sleep(timeout: number): Promise<void> {
52
45
  return new Promise((resolve, _reject) => {
53
46
  setTimeout(resolve, timeout)