11import { PartnersClient } from './partners-client.js'
22import { CreateAppQuery } from '../../api/graphql/create_app.js'
3+ import { MigrateToUiExtensionQuery } from '../../api/graphql/extension_migrate_to_ui_extension.js'
4+ import { MigrateFlowExtensionMutation } from '../../api/graphql/extension_migrate_flow_extension.js'
5+ import { MigrateAppModuleMutation } from '../../api/graphql/extension_migrate_app_module.js'
36import { AppInterface , WebType } from '../../models/app/app.js'
47import { Organization , OrganizationSource , OrganizationStore } from '../../models/organization.js'
58import {
@@ -110,7 +113,7 @@ describe('createApp', () => {
110113 expect ( partnersRequest ) . toHaveBeenCalledWith ( CreateAppQuery , 'token' , variables , undefined , undefined , {
111114 type : 'token_refresh' ,
112115 handler : expect . any ( Function ) ,
113- } )
116+ } , false )
114117 } )
115118
116119 test ( 'creates an app with non-launchable defaults' , async ( ) => {
@@ -142,7 +145,7 @@ describe('createApp', () => {
142145 expect ( partnersRequest ) . toHaveBeenCalledWith ( CreateAppQuery , 'token' , variables , undefined , undefined , {
143146 type : 'token_refresh' ,
144147 handler : expect . any ( Function ) ,
145- } )
148+ } , false )
146149 } )
147150
148151 test ( 'throws error if requests has a user error' , async ( ) => {
@@ -176,7 +179,7 @@ describe('fetchApp', async () => {
176179 expect ( partnersRequest ) . toHaveBeenCalledWith ( FindOrganizationQuery , 'token' , { id : ORG1 . id } , undefined , undefined , {
177180 type : 'token_refresh' ,
178181 handler : expect . any ( Function ) ,
179- } )
182+ } , false )
180183 } )
181184
182185 test ( 'throws if there are no organizations' , async ( ) => {
@@ -192,7 +195,7 @@ describe('fetchApp', async () => {
192195 expect ( partnersRequest ) . toHaveBeenCalledWith ( FindOrganizationQuery , 'token' , { id : ORG1 . id } , undefined , undefined , {
193196 type : 'token_refresh' ,
194197 handler : expect . any ( Function ) ,
195- } )
198+ } , false )
196199 } )
197200} )
198201
@@ -230,3 +233,101 @@ describe('singleton pattern', () => {
230233 expect ( instance1 ) . not . toBe ( instance2 )
231234 } )
232235} )
236+
237+ describe ( 'request with forceUsePartnersApi' , ( ) => {
238+ test ( 'passes forceUsePartnersApi=true for MigrateToUiExtensionQuery' , async ( ) => {
239+ // Given
240+ const partnersClient = PartnersClient . getInstance ( testPartnersUserSession )
241+ const mockResponse = { migrateToUiExtension : { userErrors : [ ] , migratedToUiExtension : true } }
242+ vi . mocked ( partnersRequest ) . mockResolvedValueOnce ( mockResponse )
243+
244+ // When
245+ await partnersClient . request ( MigrateToUiExtensionQuery , { extensionId : '123' } )
246+
247+ // Then
248+ expect ( partnersRequest ) . toHaveBeenCalledWith (
249+ MigrateToUiExtensionQuery ,
250+ testPartnersUserSession . token ,
251+ { extensionId : '123' } ,
252+ undefined ,
253+ undefined ,
254+ expect . objectContaining ( {
255+ type : 'token_refresh' ,
256+ handler : expect . any ( Function ) ,
257+ } ) ,
258+ true , // forceUsePartnersApi should be true
259+ )
260+ } )
261+
262+ test ( 'passes forceUsePartnersApi=true for MigrateFlowExtensionMutation' , async ( ) => {
263+ // Given
264+ const partnersClient = PartnersClient . getInstance ( testPartnersUserSession )
265+ const mockResponse = { migrateFlowExtension : { userErrors : [ ] , migratedFlowExtension : true } }
266+ vi . mocked ( partnersRequest ) . mockResolvedValueOnce ( mockResponse )
267+
268+ // When
269+ await partnersClient . request ( MigrateFlowExtensionMutation , { extensionId : '123' } )
270+
271+ // Then
272+ expect ( partnersRequest ) . toHaveBeenCalledWith (
273+ MigrateFlowExtensionMutation ,
274+ testPartnersUserSession . token ,
275+ { extensionId : '123' } ,
276+ undefined ,
277+ undefined ,
278+ expect . objectContaining ( {
279+ type : 'token_refresh' ,
280+ handler : expect . any ( Function ) ,
281+ } ) ,
282+ true , // forceUsePartnersApi should be true
283+ )
284+ } )
285+
286+ test ( 'passes forceUsePartnersApi=true for MigrateAppModuleMutation' , async ( ) => {
287+ // Given
288+ const partnersClient = PartnersClient . getInstance ( testPartnersUserSession )
289+ const mockResponse = { migrateAppModule : { userErrors : [ ] , migratedAppModule : true } }
290+ vi . mocked ( partnersRequest ) . mockResolvedValueOnce ( mockResponse )
291+
292+ // When
293+ await partnersClient . request ( MigrateAppModuleMutation , { appModuleId : '123' } )
294+
295+ // Then
296+ expect ( partnersRequest ) . toHaveBeenCalledWith (
297+ MigrateAppModuleMutation ,
298+ testPartnersUserSession . token ,
299+ { appModuleId : '123' } ,
300+ undefined ,
301+ undefined ,
302+ expect . objectContaining ( {
303+ type : 'token_refresh' ,
304+ handler : expect . any ( Function ) ,
305+ } ) ,
306+ true , // forceUsePartnersApi should be true
307+ )
308+ } )
309+
310+ test ( 'passes forceUsePartnersApi=false for other queries' , async ( ) => {
311+ // Given
312+ const partnersClient = PartnersClient . getInstance ( testPartnersUserSession )
313+ const mockResponse = { organizations : { nodes : [ ] } }
314+ vi . mocked ( partnersRequest ) . mockResolvedValueOnce ( mockResponse )
315+
316+ // When
317+ await partnersClient . request ( FindOrganizationQuery , { id : '1' } )
318+
319+ // Then
320+ expect ( partnersRequest ) . toHaveBeenCalledWith (
321+ FindOrganizationQuery ,
322+ testPartnersUserSession . token ,
323+ { id : '1' } ,
324+ undefined ,
325+ undefined ,
326+ expect . objectContaining ( {
327+ type : 'token_refresh' ,
328+ handler : expect . any ( Function ) ,
329+ } ) ,
330+ false , // forceUsePartnersApi should be false for non-migration queries
331+ )
332+ } )
333+ } )
0 commit comments