@@ -282,41 +282,41 @@ describe("importExport", () => {
282282 expect ( result . providerProfiles ?. apiConfigs [ "default" ] ) . toBeDefined ( )
283283 expect ( result . providerProfiles ?. apiConfigs [ "default" ] . apiProvider ) . toBe ( "anthropic" )
284284 } )
285- } )
286285
287- it ( "should call updateCustomMode for each custom mode in config" , async ( ) => {
288- ; ( vscode . window . showOpenDialog as jest . Mock ) . mockResolvedValue ( [ { fsPath : "/mock/path/settings.json" } ] )
286+ it ( "should call updateCustomMode for each custom mode in config" , async ( ) => {
287+ ; ( vscode . window . showOpenDialog as jest . Mock ) . mockResolvedValue ( [ { fsPath : "/mock/path/settings.json" } ] )
289288
290- const customModes = [
291- { slug : "mode1" , name : "Mode One" , roleDefinition : "Custom role one" , groups : [ ] } ,
292- { slug : "mode2" , name : "Mode Two" , roleDefinition : "Custom role two" , groups : [ ] } ,
293- ]
289+ const customModes = [
290+ { slug : "mode1" , name : "Mode One" , roleDefinition : "Custom role one" , groups : [ ] } ,
291+ { slug : "mode2" , name : "Mode Two" , roleDefinition : "Custom role two" , groups : [ ] } ,
292+ ]
294293
295- const mockFileContent = JSON . stringify ( {
296- providerProfiles : { currentApiConfigName : "test" , apiConfigs : { } } ,
297- globalSettings : { mode : "code" , customModes } ,
298- } )
294+ const mockFileContent = JSON . stringify ( {
295+ providerProfiles : { currentApiConfigName : "test" , apiConfigs : { } } ,
296+ globalSettings : { mode : "code" , customModes } ,
297+ } )
299298
300- ; ( fs . readFile as jest . Mock ) . mockResolvedValue ( mockFileContent )
299+ ; ( fs . readFile as jest . Mock ) . mockResolvedValue ( mockFileContent )
301300
302- mockProviderSettingsManager . export . mockResolvedValue ( {
303- currentApiConfigName : "test" ,
304- apiConfigs : { } ,
305- } )
301+ mockProviderSettingsManager . export . mockResolvedValue ( {
302+ currentApiConfigName : "test" ,
303+ apiConfigs : { } ,
304+ } )
306305
307- mockProviderSettingsManager . listConfig . mockResolvedValue ( [ ] )
306+ mockProviderSettingsManager . listConfig . mockResolvedValue ( [ ] )
308307
309- const result = await importSettings ( {
310- providerSettingsManager : mockProviderSettingsManager ,
311- contextProxy : mockContextProxy ,
312- customModesManager : mockCustomModesManager ,
313- } )
308+ const result = await importSettings ( {
309+ providerSettingsManager : mockProviderSettingsManager ,
310+ contextProxy : mockContextProxy ,
311+ customModesManager : mockCustomModesManager ,
312+ } )
314313
315- expect ( result . success ) . toBe ( true )
316- expect ( mockCustomModesManager . updateCustomMode ) . toHaveBeenCalledTimes ( customModes . length )
314+ expect ( result . success ) . toBe ( true )
315+ expect ( mockCustomModesManager . updateCustomMode ) . toHaveBeenCalledTimes ( customModes . length )
317316
318- customModes . forEach ( ( mode ) => {
319- expect ( mockCustomModesManager . updateCustomMode ) . toHaveBeenCalledWith ( mode . slug , mode )
317+ customModes . forEach ( ( mode ) => {
318+ expect ( mockCustomModesManager . updateCustomMode ) . toHaveBeenCalledWith ( mode . slug , mode )
319+ } )
320320 } )
321321 } )
322322
@@ -375,6 +375,39 @@ describe("importExport", () => {
375375 )
376376 } )
377377
378+ it ( "should include globalSettings when allowedMaxRequests is null" , async ( ) => {
379+ ; ( vscode . window . showSaveDialog as jest . Mock ) . mockResolvedValue ( {
380+ fsPath : "/mock/path/roo-code-settings.json" ,
381+ } )
382+
383+ const mockProviderProfiles = {
384+ currentApiConfigName : "test" ,
385+ apiConfigs : { test : { apiProvider : "openai" as ProviderName , id : "test-id" } } ,
386+ migrations : { rateLimitSecondsMigrated : false } ,
387+ }
388+
389+ mockProviderSettingsManager . export . mockResolvedValue ( mockProviderProfiles )
390+
391+ const mockGlobalSettings = {
392+ mode : "code" ,
393+ autoApprovalEnabled : true ,
394+ allowedMaxRequests : null ,
395+ }
396+
397+ mockContextProxy . export . mockResolvedValue ( mockGlobalSettings )
398+
399+ await exportSettings ( {
400+ providerSettingsManager : mockProviderSettingsManager ,
401+ contextProxy : mockContextProxy ,
402+ } )
403+
404+ expect ( fs . writeFile ) . toHaveBeenCalledWith (
405+ "/mock/path/roo-code-settings.json" ,
406+ JSON . stringify ( { providerProfiles : mockProviderProfiles , globalSettings : mockGlobalSettings } , null , 2 ) ,
407+ "utf-8" ,
408+ )
409+ } )
410+
378411 it ( "should handle errors during the export process" , async ( ) => {
379412 ; ( vscode . window . showSaveDialog as jest . Mock ) . mockResolvedValue ( {
380413 fsPath : "/mock/path/roo-code-settings.json" ,
0 commit comments