@@ -44,8 +44,8 @@ describe("local databases", () => {
4444 let packAddSpy : jest . Mock < any , [ ] > ;
4545 let logSpy : jest . Mock < any , [ ] > ;
4646
47- let showBinaryChoiceDialogSpy : jest . SpiedFunction <
48- typeof helpers . showBinaryChoiceDialog
47+ let showNeverAskAgainDialogSpy : jest . SpiedFunction <
48+ typeof helpers . showNeverAskAgainDialog
4949 > ;
5050
5151 let dir : tmp . DirResult ;
@@ -63,9 +63,9 @@ describe("local databases", () => {
6363 /* */
6464 } ) ;
6565
66- showBinaryChoiceDialogSpy = jest
67- . spyOn ( helpers , "showBinaryChoiceDialog " )
68- . mockResolvedValue ( true ) ;
66+ showNeverAskAgainDialogSpy = jest
67+ . spyOn ( helpers , "showNeverAskAgainDialog " )
68+ . mockResolvedValue ( "Yes" ) ;
6969
7070 extensionContextStoragePath = dir . name ;
7171
@@ -646,22 +646,51 @@ describe("local databases", () => {
646646 } ) ;
647647
648648 describe ( "when the language is set" , ( ) => {
649+ let originalValue : string | undefined ;
650+
651+ beforeEach ( ( ) => {
652+ originalValue = workspace
653+ . getConfiguration ( "codeQL" )
654+ . get ( "autogenerateQlPacks" ) ;
655+ } ) ;
656+
657+ afterEach ( async ( ) => {
658+ await workspace
659+ . getConfiguration ( "codeQL" )
660+ . update ( "autogenerateQlPacks" , originalValue ) ;
661+ } ) ;
662+
649663 it ( "should offer the user to set up a skeleton QL pack" , async ( ) => {
650664 await ( databaseManager as any ) . createSkeletonPacks ( mockDbItem ) ;
651665
652- expect ( showBinaryChoiceDialogSpy ) . toBeCalledTimes ( 1 ) ;
666+ expect ( showNeverAskAgainDialogSpy ) . toBeCalledTimes ( 1 ) ;
653667 } ) ;
654668
655669 it ( "should return early if the user refuses help" , async ( ) => {
656- showBinaryChoiceDialogSpy = jest
657- . spyOn ( helpers , "showBinaryChoiceDialog " )
658- . mockResolvedValue ( false ) ;
670+ showNeverAskAgainDialogSpy = jest
671+ . spyOn ( helpers , "showNeverAskAgainDialog " )
672+ . mockResolvedValue ( "No" ) ;
659673
660674 await ( databaseManager as any ) . createSkeletonPacks ( mockDbItem ) ;
661675
662676 expect ( generateSpy ) . not . toBeCalled ( ) ;
663677 } ) ;
664678
679+ it ( "should return early and write choice to settings if user wants to never be asked again" , async ( ) => {
680+ showNeverAskAgainDialogSpy = jest
681+ . spyOn ( helpers , "showNeverAskAgainDialog" )
682+ . mockResolvedValue ( "No, and never ask me again" ) ;
683+ const updateValueSpy = jest . spyOn ( Setting . prototype , "updateValue" ) ;
684+
685+ await ( databaseManager as any ) . createSkeletonPacks ( mockDbItem ) ;
686+
687+ expect ( generateSpy ) . not . toBeCalled ( ) ;
688+ expect ( updateValueSpy ) . toHaveBeenCalledWith (
689+ "No, and never ask me again" ,
690+ 1 ,
691+ ) ;
692+ } ) ;
693+
665694 it ( "should create the skeleton QL pack for the user" , async ( ) => {
666695 await ( databaseManager as any ) . createSkeletonPacks ( mockDbItem ) ;
667696
@@ -694,9 +723,9 @@ describe("local databases", () => {
694723 } ) ;
695724
696725 it ( "should exit early" , async ( ) => {
697- showBinaryChoiceDialogSpy = jest
698- . spyOn ( helpers , "showBinaryChoiceDialog " )
699- . mockResolvedValue ( false ) ;
726+ showNeverAskAgainDialogSpy = jest
727+ . spyOn ( helpers , "showNeverAskAgainDialog " )
728+ . mockResolvedValue ( "No" ) ;
700729
701730 await ( databaseManager as any ) . createSkeletonPacks ( mockDbItem ) ;
702731
0 commit comments