@@ -554,4 +554,55 @@ describe('LanguageServerManager', () => {
554554 expect ( client . outputChannel . appendLine . callCount ) . to . eql ( 1 ) ;
555555 } ) ;
556556 } ) ;
557+
558+ describe ( 'isLanguageServerEnabledInSettings' , ( ) => {
559+ beforeEach ( ( ) => {
560+ // Clear configuration before each test
561+ vscode . workspace . _configuration = { } ;
562+ } ) ;
563+
564+ it ( 'returns true when new setting is true' , ( ) => {
565+ vscode . workspace . _configuration [ 'brightscript.languageServer.enable' ] = true ;
566+ vscode . workspace . _configuration [ 'brightscript.enableLanguageServer' ] = false ;
567+
568+ expect ( languageServerManager . isLanguageServerEnabledInSettings ( ) ) . to . be . true ;
569+ } ) ;
570+
571+ it ( 'returns false when new setting is false' , ( ) => {
572+ vscode . workspace . _configuration [ 'brightscript.languageServer.enable' ] = false ;
573+ vscode . workspace . _configuration [ 'brightscript.enableLanguageServer' ] = true ;
574+
575+ expect ( languageServerManager . isLanguageServerEnabledInSettings ( ) ) . to . be . false ;
576+ } ) ;
577+
578+ it ( 'falls back to old setting when new setting is undefined' , ( ) => {
579+ vscode . workspace . _configuration [ 'brightscript.enableLanguageServer' ] = true ;
580+
581+ expect ( languageServerManager . isLanguageServerEnabledInSettings ( ) ) . to . be . true ;
582+ } ) ;
583+
584+ it ( 'falls back to old setting false when new setting is undefined' , ( ) => {
585+ vscode . workspace . _configuration [ 'brightscript.enableLanguageServer' ] = false ;
586+
587+ expect ( languageServerManager . isLanguageServerEnabledInSettings ( ) ) . to . be . false ;
588+ } ) ;
589+
590+ it ( 'returns default true when both settings are undefined' , ( ) => {
591+ expect ( languageServerManager . isLanguageServerEnabledInSettings ( ) ) . to . be . true ;
592+ } ) ;
593+
594+ it ( 'prioritizes new setting over old setting when both are defined' , ( ) => {
595+ vscode . workspace . _configuration [ 'brightscript.languageServer.enable' ] = false ;
596+ vscode . workspace . _configuration [ 'brightscript.enableLanguageServer' ] = true ;
597+
598+ expect ( languageServerManager . isLanguageServerEnabledInSettings ( ) ) . to . be . false ;
599+ } ) ;
600+
601+ it ( 'prioritizes new setting over old setting when both are true' , ( ) => {
602+ vscode . workspace . _configuration [ 'brightscript.languageServer.enable' ] = true ;
603+ vscode . workspace . _configuration [ 'brightscript.enableLanguageServer' ] = false ;
604+
605+ expect ( languageServerManager . isLanguageServerEnabledInSettings ( ) ) . to . be . true ;
606+ } ) ;
607+ } ) ;
557608} ) ;
0 commit comments