@@ -5,8 +5,8 @@ import {afterEach, beforeEach, describe, expect, it, type Mock, vi} from 'vitest
5
5
6
6
import { useAuthState } from '../hooks/auth/useAuthState'
7
7
import { useWindowConnection } from '../hooks/comlink/useWindowConnection'
8
- import { useSanityInstance } from '../hooks/context/useSanityInstance'
9
8
import { ComlinkTokenRefreshProvider } from './ComlinkTokenRefresh'
9
+ import { ResourceProvider } from './ResourceProvider'
10
10
11
11
// Mocks
12
12
vi . mock ( '@sanity/sdk' , async ( ) => {
@@ -26,28 +26,20 @@ vi.mock('../hooks/comlink/useWindowConnection', () => ({
26
26
useWindowConnection : vi . fn ( ) ,
27
27
} ) )
28
28
29
- vi . mock ( '../hooks/context/useSanityInstance' , ( ) => ( {
30
- useSanityInstance : vi . fn ( ) ,
31
- } ) )
32
-
33
29
// Use simpler mock typings
34
30
const mockGetIsInDashboardState = getIsInDashboardState as Mock
35
31
const mockSetAuthToken = setAuthToken as Mock
36
32
const mockUseAuthState = useAuthState as Mock
37
33
const mockUseWindowConnection = useWindowConnection as Mock
38
- const mockUseSanityInstance = useSanityInstance as Mock
39
34
40
35
const mockFetch = vi . fn ( )
41
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
42
- const mockSanityInstance : any = { projectId : 'test' , dataset : 'test' }
43
36
44
37
describe ( 'ComlinkTokenRefresh' , ( ) => {
45
38
beforeEach ( ( ) => {
46
39
vi . useFakeTimers ( )
47
40
mockGetIsInDashboardState . mockReturnValue ( { getCurrent : vi . fn ( ( ) => false ) } )
48
41
mockUseAuthState . mockReturnValue ( { type : AuthStateType . LOGGED_IN } )
49
42
mockUseWindowConnection . mockReturnValue ( { fetch : mockFetch } )
50
- mockUseSanityInstance . mockReturnValue ( mockSanityInstance )
51
43
} )
52
44
53
45
afterEach ( ( ) => {
@@ -64,9 +56,11 @@ describe('ComlinkTokenRefresh', () => {
64
56
it ( 'should not request new token on 401 if not in dashboard' , async ( ) => {
65
57
mockUseAuthState . mockReturnValue ( { type : AuthStateType . LOGGED_IN } )
66
58
const { rerender} = render (
67
- < ComlinkTokenRefreshProvider >
68
- < div > Test</ div >
69
- </ ComlinkTokenRefreshProvider > ,
59
+ < ResourceProvider projectId = "test-project" dataset = "test-dataset" fallback = { null } >
60
+ < ComlinkTokenRefreshProvider >
61
+ < div > Test</ div >
62
+ </ ComlinkTokenRefreshProvider >
63
+ </ ResourceProvider > ,
70
64
)
71
65
72
66
mockUseAuthState . mockReturnValue ( {
@@ -75,9 +69,11 @@ describe('ComlinkTokenRefresh', () => {
75
69
} )
76
70
act ( ( ) => {
77
71
rerender (
78
- < ComlinkTokenRefreshProvider >
79
- < div > Test</ div >
80
- </ ComlinkTokenRefreshProvider > ,
72
+ < ResourceProvider projectId = "test-project" dataset = "test-dataset" fallback = { null } >
73
+ < ComlinkTokenRefreshProvider >
74
+ < div > Test</ div >
75
+ </ ComlinkTokenRefreshProvider >
76
+ </ ResourceProvider > ,
81
77
)
82
78
} )
83
79
@@ -95,9 +91,11 @@ describe('ComlinkTokenRefresh', () => {
95
91
96
92
it ( 'should initialize useWindowConnection with correct parameters' , ( ) => {
97
93
render (
98
- < ComlinkTokenRefreshProvider >
99
- < div > Test</ div >
100
- </ ComlinkTokenRefreshProvider > ,
94
+ < ResourceProvider projectId = "test-project" dataset = "test-dataset" fallback = { null } >
95
+ < ComlinkTokenRefreshProvider >
96
+ < div > Test</ div >
97
+ </ ComlinkTokenRefreshProvider >
98
+ </ ResourceProvider > ,
101
99
)
102
100
103
101
expect ( mockUseWindowConnection ) . toHaveBeenCalledWith (
@@ -116,16 +114,18 @@ describe('ComlinkTokenRefresh', () => {
116
114
mockFetch . mockResolvedValueOnce ( { token : 'new-token' } )
117
115
118
116
render (
119
- < ComlinkTokenRefreshProvider >
120
- < div > Test</ div >
121
- </ ComlinkTokenRefreshProvider > ,
117
+ < ResourceProvider projectId = "test-project" dataset = "test-dataset" fallback = { null } >
118
+ < ComlinkTokenRefreshProvider >
119
+ < div > Test</ div >
120
+ </ ComlinkTokenRefreshProvider >
121
+ </ ResourceProvider > ,
122
122
)
123
123
124
124
await act ( async ( ) => {
125
125
await vi . advanceTimersByTimeAsync ( 100 )
126
126
} )
127
127
128
- expect ( mockSetAuthToken ) . toHaveBeenCalledWith ( mockSanityInstance , 'new-token' )
128
+ expect ( mockSetAuthToken ) . toHaveBeenCalledWith ( expect . any ( Object ) , 'new-token' )
129
129
expect ( mockFetch ) . toHaveBeenCalledTimes ( 1 )
130
130
} )
131
131
@@ -137,9 +137,11 @@ describe('ComlinkTokenRefresh', () => {
137
137
mockFetch . mockResolvedValueOnce ( { token : null } )
138
138
139
139
render (
140
- < ComlinkTokenRefreshProvider >
141
- < div > Test</ div >
142
- </ ComlinkTokenRefreshProvider > ,
140
+ < ResourceProvider projectId = "test-project" dataset = "test-dataset" fallback = { null } >
141
+ < ComlinkTokenRefreshProvider >
142
+ < div > Test</ div >
143
+ </ ComlinkTokenRefreshProvider >
144
+ </ ResourceProvider > ,
143
145
)
144
146
145
147
await act ( async ( ) => {
@@ -157,9 +159,11 @@ describe('ComlinkTokenRefresh', () => {
157
159
mockFetch . mockRejectedValueOnce ( new Error ( 'Fetch failed' ) )
158
160
159
161
render (
160
- < ComlinkTokenRefreshProvider >
161
- < div > Test</ div >
162
- </ ComlinkTokenRefreshProvider > ,
162
+ < ResourceProvider projectId = "test-project" dataset = "test-dataset" fallback = { null } >
163
+ < ComlinkTokenRefreshProvider >
164
+ < div > Test</ div >
165
+ </ ComlinkTokenRefreshProvider >
166
+ </ ResourceProvider > ,
163
167
)
164
168
165
169
await act ( async ( ) => {
@@ -173,9 +177,12 @@ describe('ComlinkTokenRefresh', () => {
173
177
it ( 'should not request new token for non-401 errors' , async ( ) => {
174
178
mockUseAuthState . mockReturnValue ( { type : AuthStateType . LOGGED_IN } )
175
179
const { rerender} = render (
176
- < ComlinkTokenRefreshProvider >
177
- < div > Test</ div >
178
- </ ComlinkTokenRefreshProvider > ,
180
+ < ResourceProvider fallback = { null } >
181
+ < ComlinkTokenRefreshProvider >
182
+ < div > Test</ div >
183
+ </ ComlinkTokenRefreshProvider >
184
+ ,
185
+ </ ResourceProvider > ,
179
186
)
180
187
181
188
mockUseAuthState . mockReturnValue ( {
@@ -184,9 +191,11 @@ describe('ComlinkTokenRefresh', () => {
184
191
} )
185
192
act ( ( ) => {
186
193
rerender (
187
- < ComlinkTokenRefreshProvider >
188
- < div > Test</ div >
189
- </ ComlinkTokenRefreshProvider > ,
194
+ < ResourceProvider fallback = { null } >
195
+ < ComlinkTokenRefreshProvider >
196
+ < div > Test</ div >
197
+ </ ComlinkTokenRefreshProvider >
198
+ </ ResourceProvider > ,
190
199
)
191
200
} )
192
201
@@ -199,17 +208,21 @@ describe('ComlinkTokenRefresh', () => {
199
208
it ( 'should request new token on LOGGED_OUT state' , async ( ) => {
200
209
mockUseAuthState . mockReturnValue ( { type : AuthStateType . LOGGED_IN } )
201
210
const { rerender} = render (
202
- < ComlinkTokenRefreshProvider >
203
- < div > Test</ div >
204
- </ ComlinkTokenRefreshProvider > ,
211
+ < ResourceProvider fallback = { null } >
212
+ < ComlinkTokenRefreshProvider >
213
+ < div > Test</ div >
214
+ </ ComlinkTokenRefreshProvider >
215
+ </ ResourceProvider > ,
205
216
)
206
217
207
218
mockUseAuthState . mockReturnValue ( { type : AuthStateType . LOGGED_OUT } )
208
219
act ( ( ) => {
209
220
rerender (
210
- < ComlinkTokenRefreshProvider >
211
- < div > Test</ div >
212
- </ ComlinkTokenRefreshProvider > ,
221
+ < ResourceProvider fallback = { null } >
222
+ < ComlinkTokenRefreshProvider >
223
+ < div > Test</ div >
224
+ </ ComlinkTokenRefreshProvider >
225
+ </ ResourceProvider > ,
213
226
)
214
227
} )
215
228
0 commit comments