forked from microsoft/vscode-python
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathservice.test.ts
More file actions
36 lines (33 loc) · 1.52 KB
/
service.test.ts
File metadata and controls
36 lines (33 loc) · 1.52 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
// Copyright (c) Microsoft Corporation. All rights reserved.
// Licensed under the MIT License.
import { expect } from 'chai';
import { workspace } from 'vscode';
import { IAsyncDisposableRegistry, IConfigurationService } from '../../../client/common/types';
import { IServiceContainer } from '../../../client/ioc/types';
import { getExtensionSettings } from '../../common';
import { initialize } from '../../initialize';
suite('Configuration Service', () => {
let serviceContainer: IServiceContainer;
suiteSetup(async () => {
serviceContainer = (await initialize()).serviceContainer;
});
test('Ensure same instance of settings return', () => {
const workspaceUri = workspace.workspaceFolders![0].uri;
const settings = serviceContainer.get<IConfigurationService>(IConfigurationService).getSettings(workspaceUri);
const instanceIsSame = settings === getExtensionSettings(workspaceUri);
expect(instanceIsSame).to.be.equal(true, 'Incorrect settings');
});
test('Ensure async registry works', async () => {
const asyncRegistry = serviceContainer.get<IAsyncDisposableRegistry>(IAsyncDisposableRegistry);
let disposed = false;
const disposable = {
dispose(): Promise<void> {
disposed = true;
return Promise.resolve();
},
};
asyncRegistry.push(disposable);
await asyncRegistry.dispose();
expect(disposed).to.be.equal(true, "Didn't dispose during async registry cleanup");
});
});