@@ -42,6 +42,7 @@ suite('Language Server - Manager', () => {
42
42
let configService : IConfigurationService ;
43
43
let commandManager : ICommandManager ;
44
44
const languageClientOptions = ( { x : 1 } as any ) as LanguageClientOptions ;
45
+ let restartCommand : ( ) => void ;
45
46
setup ( ( ) => {
46
47
serviceContainer = mock ( ServiceContainer ) ;
47
48
analysisOptions = mock ( DotNetLanguageServerAnalysisOptions ) ;
@@ -53,7 +54,12 @@ suite('Language Server - Manager', () => {
53
54
54
55
commandManager = mock ( CommandManager ) ;
55
56
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
+ ) ;
57
63
58
64
manager = new DotNetLanguageServerManager (
59
65
instance ( serviceContainer ) ,
@@ -189,5 +195,17 @@ suite('Language Server - Manager', () => {
189
195
190
196
verify ( languageServer . loadExtension ( args ) ) . once ( ) ;
191
197
} ) ;
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
+ } ) ;
192
210
} ) ;
193
211
} ) ;
0 commit comments