1
1
import { SeamProvider } from '@seamapi/react'
2
+ import { QueryClient } from '@tanstack/react-query'
2
3
import { render } from '@testing-library/react'
3
4
import type { PropsWithChildren } from 'react'
4
5
@@ -13,26 +14,45 @@ declare global {
13
14
var JEST_SEAM_CLIENT_SESSION_TOKEN_2 : string
14
15
}
15
16
16
- function Providers ( { children } : PropsWithChildren ) : JSX . Element {
17
- return (
18
- < SeamProvider
19
- endpoint = { globalThis . JEST_SEAM_ENDPOINT }
20
- publishableKey = { globalThis . JEST_SEAM_PUBLISHABLE_KEY_1 }
21
- userIdentifierKey = 'some_user'
22
- disableCssInjection
23
- disableFontInjection
24
- >
25
- { children }
26
- </ SeamProvider >
27
- )
28
- }
29
-
30
17
type Render = typeof render
31
18
32
19
const customRender = (
33
20
ui : Parameters < Render > [ 0 ] ,
34
21
options ?: Parameters < Render > [ 1 ]
35
- ) : ReturnType < Render > => render ( ui , { wrapper : Providers , ...options } )
22
+ ) : ReturnType < Render > => {
23
+ const queryClient = createQueryClient ( )
24
+ const Providers = createProviders ( { queryClient } )
25
+ return render ( ui , { wrapper : Providers , ...options } )
26
+ }
27
+
28
+ const createQueryClient = ( ) : QueryClient =>
29
+ new QueryClient ( {
30
+ defaultOptions : {
31
+ queries : {
32
+ retry : false ,
33
+ // UPSTREAM: Prevent "Jest did not exit one second after the test run completed" error message.
34
+ // https://tanstack.com/query/v4/docs/react/guides/testing#set-cachetime-to-infinity-with-jest
35
+ cacheTime : Infinity ,
36
+ } ,
37
+ } ,
38
+ } )
39
+
40
+ const createProviders = ( { queryClient } : { queryClient : QueryClient } ) => {
41
+ return function Providers ( { children } : PropsWithChildren ) : JSX . Element {
42
+ return (
43
+ < SeamProvider
44
+ queryClient = { queryClient }
45
+ endpoint = { globalThis . JEST_SEAM_ENDPOINT }
46
+ publishableKey = { globalThis . JEST_SEAM_PUBLISHABLE_KEY_1 }
47
+ userIdentifierKey = 'some_user'
48
+ disableCssInjection
49
+ disableFontInjection
50
+ >
51
+ { children }
52
+ </ SeamProvider >
53
+ )
54
+ }
55
+ }
36
56
37
57
// eslint-disable-next-line import/export
38
58
export * from '@testing-library/react'
0 commit comments