Skip to content

Commit 8cb4d2a

Browse files
committed
Test restarting
1 parent 05cab94 commit 8cb4d2a

File tree

1 file changed

+19
-1
lines changed

1 file changed

+19
-1
lines changed

src/test/activation/languageServer/manager.unit.test.ts

Lines changed: 19 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -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

Comments
 (0)