Path: blob/main/src/vs/sessions/test/web.test.factory.ts
13389 views
/*---------------------------------------------------------------------------------------------1* Copyright (c) Microsoft Corporation. All rights reserved.2* Licensed under the MIT License. See License.txt in the project root for license information.3*--------------------------------------------------------------------------------------------*/45import { IWorkbench, IWorkbenchConstructionOptions } from '../../workbench/browser/web.api.js';6import { TestSessionsBrowserMain } from './web.test.js';7import { IDisposable, toDisposable } from '../../base/common/lifecycle.js';8import { mark } from '../../base/common/performance.js';9import { DeferredPromise } from '../../base/common/async.js';1011const workbenchPromise = new DeferredPromise<IWorkbench>();1213/**14* Creates the Sessions workbench with mock services for E2E testing.15*/16export function create(domElement: HTMLElement, options: IWorkbenchConstructionOptions): IDisposable {1718mark('code/didLoadWorkbenchMain');1920let instantiatedWorkbench: IWorkbench | undefined = undefined;21new TestSessionsBrowserMain(domElement, options).open().then(workbench => {22instantiatedWorkbench = workbench;23workbenchPromise.complete(workbench);24});2526return toDisposable(() => {27if (instantiatedWorkbench) {28instantiatedWorkbench.shutdown();29} else {30workbenchPromise.p.then(w => w.shutdown());31}32});33}343536