Skip to content

Commit 8d3618a

Browse files
Fix error in extension.test.ts (#1134)
1 parent d12d898 commit 8d3618a

File tree

1 file changed

+20
-15
lines changed

1 file changed

+20
-15
lines changed

test/integration-tests/extension.test.ts

Lines changed: 20 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -14,32 +14,37 @@
1414

1515
import * as vscode from "vscode";
1616
import * as assert from "assert";
17-
import * as swiftExtension from "../../src/extension";
17+
import { Api } from "../../src/extension";
1818
import { WorkspaceContext } from "../../src/WorkspaceContext";
1919
import { getBuildAllTask } from "../../src/tasks/SwiftTaskProvider";
2020
import { SwiftExecution } from "../../src/tasks/SwiftExecution";
2121
import { testAssetUri } from "../fixtures";
2222
import { FolderContext } from "../../src/FolderContext";
2323

24-
export const rootWorkspaceFolder = vscode.workspace.workspaceFolders?.values().next().value;
25-
export const globalWorkspaceContextPromise = new Promise<WorkspaceContext>(resolve => {
26-
const workspaceFolder = vscode.workspace.workspaceFolders?.values().next().value;
27-
if (!workspaceFolder) {
28-
throw new Error("No workspace folders found in workspace");
24+
function getRootWorkspaceFolder(): vscode.WorkspaceFolder {
25+
const result = vscode.workspace.workspaceFolders?.at(0);
26+
assert(result, "No workspace folders were opened for the tests to use");
27+
return result;
28+
}
29+
30+
export const globalWorkspaceContextPromise: Promise<WorkspaceContext> = (async () => {
31+
const workspaceFolder = getRootWorkspaceFolder();
32+
const ext = vscode.extensions.getExtension<Api>("sswg.swift-lang");
33+
if (!ext) {
34+
throw new Error(`Unable to find extension "sswg.swift-lang"`);
2935
}
30-
const ext = vscode.extensions.getExtension<swiftExtension.Api>("sswg.swift-lang")!;
31-
ext.activate().then(api => {
32-
const packageFolder = testAssetUri("defaultPackage");
33-
api.workspaceContext
34-
.addPackageFolder(packageFolder, rootWorkspaceFolder)
35-
.then(() => resolve(api.workspaceContext));
36-
});
37-
});
36+
const api = await ext.activate();
37+
const packageFolder = testAssetUri("defaultPackage");
38+
await api.workspaceContext.addPackageFolder(packageFolder, workspaceFolder);
39+
return api.workspaceContext;
40+
})();
41+
3842
export const folderContextPromise = async (name: string): Promise<FolderContext> => {
43+
const workspaceFolder = getRootWorkspaceFolder();
3944
const workspaceContext = await globalWorkspaceContextPromise;
4045
let folder = workspaceContext.folders.find(f => f.workspaceFolder.name === `test/${name}`);
4146
if (!folder) {
42-
folder = await workspaceContext.addPackageFolder(testAssetUri(name), rootWorkspaceFolder);
47+
folder = await workspaceContext.addPackageFolder(testAssetUri(name), workspaceFolder);
4348
}
4449
return folder;
4550
};

0 commit comments

Comments
 (0)