diff --git a/extensions/import/src/controllers/controllerBase.ts b/extensions/import/src/controllers/controllerBase.ts index 69654f4ff5..5d90c8b6ee 100644 --- a/extensions/import/src/controllers/controllerBase.ts +++ b/extensions/import/src/controllers/controllerBase.ts @@ -16,7 +16,7 @@ export default abstract class ControllerBase implements vscode.Disposable { return this._context; } - abstract activate(): Promise; + abstract activate(): Promise; abstract deactivate(): void; diff --git a/extensions/import/src/controllers/mainController.ts b/extensions/import/src/controllers/mainController.ts index 8dddc21ccc..7b6a789dc6 100644 --- a/extensions/import/src/controllers/mainController.ts +++ b/extensions/import/src/controllers/mainController.ts @@ -29,14 +29,17 @@ export default class MainController extends ControllerBase { public deactivate(): void { } - public async activate(): Promise { - return new Promise(async (resolve) => { + public async activate(): Promise { + const registerFileProviderPromise = new Promise(async (resolve) => { managerInstance.onRegisteredApi(ApiType.FlatFileProvider)(provider => { this.initializeFlatFileProvider(provider); resolve(true); }); - await new ServiceClient(this._outputChannel).startService(this._context); }); + const serviceClient = new ServiceClient(this._outputChannel); + const serviceStartPromise = serviceClient.startService(this._context); + + await Promise.all([registerFileProviderPromise, serviceStartPromise]); } diff --git a/extensions/import/src/test/controllers/mainController.test.ts b/extensions/import/src/test/controllers/mainController.test.ts index e3b2674f8e..e9b7340c55 100644 --- a/extensions/import/src/test/controllers/mainController.test.ts +++ b/extensions/import/src/test/controllers/mainController.test.ts @@ -5,7 +5,6 @@ import MainController from '../../controllers/mainController'; import { ImportTestUtils, TestExtensionContext } from '../utils.test'; -import * as should from 'should'; describe('Main Controller', function () { let testExtensionContext: TestExtensionContext; @@ -16,7 +15,7 @@ describe('Main Controller', function () { it('Extension activates successfully', async function () { let mainController = new MainController(testExtensionContext); - should.doesNotThrow(() => mainController.activate()); + await mainController.activate().should.not.be.rejected(); }); });