Skip to content

Commit 3e83a67

Browse files
dispose of subscriptions in Background Compilation tests
1 parent ec03c85 commit 3e83a67

File tree

2 files changed

+16
-13
lines changed

2 files changed

+16
-13
lines changed

.vscode/launch.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@
1717
"preLaunchTask": "Build Extension"
1818
},
1919
{
20-
"name": "Extension Tests",
20+
"name": "Integration Tests",
2121
"type": "extensionHost",
2222
"request": "launch",
2323
"testConfiguration": "${workspaceFolder}/.vscode-test.js",

test/integration-tests/BackgroundCompilation.test.ts

Lines changed: 15 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -19,13 +19,16 @@ import { WorkspaceContext } from "@src/WorkspaceContext";
1919
import { testAssetUri } from "../fixtures";
2020
import { tag } from "../tags";
2121
import { closeAllEditors } from "../utilities/commands";
22+
import { waitForNoRunningTasks } from "../utilities/tasks";
2223
import { activateExtensionForTest, updateSettings } from "./utilities/testutilities";
2324

2425
tag("large").suite("BackgroundCompilation Test Suite", () => {
26+
let subscriptions: vscode.Disposable[];
2527
let workspaceContext: WorkspaceContext;
2628

2729
activateExtensionForTest({
2830
async setup(ctx) {
31+
subscriptions = [];
2932
workspaceContext = ctx;
3033
assert.notEqual(workspaceContext.folders.length, 0);
3134
return await updateSettings({
@@ -35,28 +38,28 @@ tag("large").suite("BackgroundCompilation Test Suite", () => {
3538
});
3639

3740
suiteTeardown(async () => {
41+
subscriptions.forEach(s => s.dispose());
3842
await closeAllEditors();
3943
});
4044

4145
test("build all on save", async () => {
42-
const taskPromise = new Promise<void>(res => {
43-
vscode.tasks.onDidStartTask(e => {
44-
const task = e.execution.task;
45-
if (task.name.includes("Build All")) {
46-
vscode.tasks.onDidEndTask(e => {
47-
if (e.execution.task === task) {
48-
res();
49-
}
50-
});
51-
}
52-
});
46+
const taskStartPromise = new Promise<void>(resolve => {
47+
subscriptions.push(
48+
vscode.tasks.onDidStartTask(e => {
49+
const task = e.execution.task;
50+
if (task.name.includes("Build All")) {
51+
resolve();
52+
}
53+
})
54+
);
5355
});
5456

5557
const uri = testAssetUri("defaultPackage/Sources/PackageExe/main.swift");
5658
const doc = await vscode.workspace.openTextDocument(uri.fsPath);
5759
await vscode.window.showTextDocument(doc);
5860
await vscode.workspace.save(uri);
5961

60-
await taskPromise;
62+
await taskStartPromise;
63+
await waitForNoRunningTasks();
6164
});
6265
});

0 commit comments

Comments
 (0)