@@ -42,6 +42,7 @@ suite('Language Server - Manager', () => {
4242 let configService : IConfigurationService ;
4343 let commandManager : ICommandManager ;
4444 const languageClientOptions = ( { x : 1 } as any ) as LanguageClientOptions ;
45+ let restartCommand : ( ) => void ;
4546 setup ( ( ) => {
4647 serviceContainer = mock ( ServiceContainer ) ;
4748 analysisOptions = mock ( DotNetLanguageServerAnalysisOptions ) ;
@@ -53,7 +54,12 @@ suite('Language Server - Manager', () => {
5354
5455 commandManager = mock ( CommandManager ) ;
5556 const disposable = mock ( Disposable ) ;
56- when ( commandManager . registerCommand ( Commands . RestartLS , anything ( ) ) ) . thenReturn ( instance ( disposable ) ) ;
57+ when ( commandManager . registerCommand ( Commands . RestartLS , anything ( ) ) ) . thenCall (
58+ ( _command : string , func : ( ) => void ) => {
59+ restartCommand = func ;
60+ return instance ( disposable ) ;
61+ }
62+ ) ;
5763
5864 manager = new DotNetLanguageServerManager (
5965 instance ( serviceContainer ) ,
@@ -189,5 +195,17 @@ suite('Language Server - Manager', () => {
189195
190196 verify ( languageServer . loadExtension ( args ) ) . once ( ) ;
191197 } ) ;
198+ test ( 'Restart LS command restarts LS' , async ( ) => {
199+ await startLanguageServer ( ) ;
200+
201+ restartCommand ( ) ;
202+ await sleep ( 50 ) ;
203+
204+ verify ( languageServer . dispose ( ) ) . once ( ) ;
205+
206+ verify ( analysisOptions . getAnalysisOptions ( ) ) . twice ( ) ;
207+ verify ( serviceContainer . get < ILanguageServerProxy > ( ILanguageServerProxy ) ) . twice ( ) ;
208+ verify ( languageServer . start ( resource , undefined , languageClientOptions ) ) . twice ( ) ;
209+ } ) ;
192210 } ) ;
193211} ) ;
0 commit comments