@@ -16,7 +16,7 @@ import {
1616 WorkspaceFolder ,
1717} from 'vscode' ;
1818import { cloneDeep } from 'lodash' ;
19- import { anything , instance , mock , verify , when } from 'ts-mockito' ;
19+ import { anything , instance , mock , when } from 'ts-mockito' ;
2020import { IApplicationShell , ICommandManager , IWorkspaceService } from '../../../../client/common/application/types' ;
2121import { PathUtils } from '../../../../client/common/platform/pathUtils' ;
2222import { IPlatformService } from '../../../../client/common/platform/types' ;
@@ -261,10 +261,10 @@ suite('Set Interpreter Command', () => {
261261 await setInterpreterCommand . _pickInterpreter ( multiStepInput . object , state ) ;
262262
263263 expect ( actualParameters ) . to . not . equal ( undefined , 'Parameters not set' ) ;
264- const refreshButtonCallback = actualParameters ! . customButtonSetup ?. callback ;
265- expect ( refreshButtonCallback ) . to . not . equal ( undefined , 'Callback not set' ) ;
264+ const refreshButtons = actualParameters ! . customButtonSetups ;
265+ expect ( refreshButtons ) . to . not . equal ( undefined , 'Callback not set' ) ;
266266 delete actualParameters ! . initialize ;
267- delete actualParameters ! . customButtonSetup ;
267+ delete actualParameters ! . customButtonSetups ;
268268 delete actualParameters ! . onChangeItem ;
269269 assert . deepStrictEqual ( actualParameters , expectedParameters , 'Params not equal' ) ;
270270 } ) ;
@@ -302,10 +302,10 @@ suite('Set Interpreter Command', () => {
302302 await setInterpreterCommand . _pickInterpreter ( multiStepInput . object , state ) ;
303303
304304 expect ( actualParameters ) . to . not . equal ( undefined , 'Parameters not set' ) ;
305- const refreshButtonCallback = actualParameters ! . customButtonSetup ?. callback ;
306- expect ( refreshButtonCallback ) . to . not . equal ( undefined , 'Callback not set' ) ;
305+ const refreshButtons = actualParameters ! . customButtonSetups ;
306+ expect ( refreshButtons ) . to . not . equal ( undefined , 'Callback not set' ) ;
307307 delete actualParameters ! . initialize ;
308- delete actualParameters ! . customButtonSetup ;
308+ delete actualParameters ! . customButtonSetups ;
309309 delete actualParameters ! . onChangeItem ;
310310 assert . deepStrictEqual ( actualParameters , expectedParameters , 'Params not equal' ) ;
311311 } ) ;
@@ -458,10 +458,10 @@ suite('Set Interpreter Command', () => {
458458 await setInterpreterCommand . _pickInterpreter ( multiStepInput . object , state ) ;
459459
460460 expect ( actualParameters ) . to . not . equal ( undefined , 'Parameters not set' ) ;
461- const refreshButtonCallback = actualParameters ! . customButtonSetup ?. callback ;
462- expect ( refreshButtonCallback ) . to . not . equal ( undefined , 'Callback not set' ) ;
461+ const refreshButtons = actualParameters ! . customButtonSetups ;
462+ expect ( refreshButtons ) . to . not . equal ( undefined , 'Callback not set' ) ;
463463 delete actualParameters ! . initialize ;
464- delete actualParameters ! . customButtonSetup ;
464+ delete actualParameters ! . customButtonSetups ;
465465 delete actualParameters ! . onChangeItem ;
466466 assert . deepStrictEqual ( actualParameters ?. items , expectedParameters . items , 'Params not equal' ) ;
467467 } ) ;
@@ -542,11 +542,11 @@ suite('Set Interpreter Command', () => {
542542 await setInterpreterCommand . _pickInterpreter ( multiStepInput . object , state ) ;
543543
544544 expect ( actualParameters ) . to . not . equal ( undefined , 'Parameters not set' ) ;
545- const refreshButtonCallback = actualParameters ! . customButtonSetup ?. callback ;
546- expect ( refreshButtonCallback ) . to . not . equal ( undefined , 'Callback not set' ) ;
545+ const refreshButtons = actualParameters ! . customButtonSetups ;
546+ expect ( refreshButtons ) . to . not . equal ( undefined , 'Callback not set' ) ;
547547
548548 delete actualParameters ! . initialize ;
549- delete actualParameters ! . customButtonSetup ;
549+ delete actualParameters ! . customButtonSetups ;
550550 delete actualParameters ! . onChangeItem ;
551551
552552 assert . deepStrictEqual ( actualParameters , expectedParameters , 'Params not equal' ) ;
@@ -566,12 +566,19 @@ suite('Set Interpreter Command', () => {
566566 await setInterpreterCommand . _pickInterpreter ( multiStepInput . object , state ) ;
567567
568568 expect ( actualParameters ) . to . not . equal ( undefined , 'Parameters not set' ) ;
569- const refreshButtonCallback = actualParameters ! . customButtonSetup ?. callback ;
570- expect ( refreshButtonCallback ) . to . not . equal ( undefined , 'Callback not set' ) ;
571-
572- when ( interpreterService . triggerRefresh ( ) ) . thenResolve ( ) ;
573- await refreshButtonCallback ! ( { } as QuickPick < QuickPickItem > ) ; // Invoke callback, meaning that the refresh button is clicked.
574- verify ( interpreterService . triggerRefresh ( ) ) . once ( ) ;
569+ const refreshButtons = actualParameters ! . customButtonSetups ;
570+ expect ( refreshButtons ) . to . not . equal ( undefined , 'Callback not set' ) ;
571+
572+ expect ( refreshButtons ?. length ) . to . equal ( 2 ) ;
573+ let arg ;
574+ when ( interpreterService . triggerRefresh ( undefined , anything ( ) ) ) . thenCall ( ( _ , _arg ) => {
575+ arg = _arg ;
576+ return Promise . resolve ( ) ;
577+ } ) ;
578+ await refreshButtons ! [ 0 ] . callback ! ( { } as QuickPick < QuickPickItem > ) ; // Invoke callback, meaning that the refresh button is clicked.
579+ expect ( arg ) . to . deep . equal ( { clearCache : true } ) ;
580+ await refreshButtons ! [ 1 ] . callback ! ( { } as QuickPick < QuickPickItem > ) ; // Invoke callback, meaning that the refresh button is clicked.
581+ expect ( arg ) . to . deep . equal ( { clearCache : false } ) ;
575582 } ) ;
576583
577584 test ( 'Events to update quickpick updates the quickpick accordingly' , async ( ) => {
0 commit comments