Skip to content

Commit 688408d

Browse files
committed
Fix plugin tasks provider tests
1 parent 8878469 commit 688408d

File tree

2 files changed

+29
-10
lines changed

2 files changed

+29
-10
lines changed

test/integration-tests/tasks/SwiftPluginTaskProvider.test.ts

Lines changed: 16 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -14,11 +14,17 @@
1414

1515
import * as vscode from "vscode";
1616
import * as assert from "assert";
17+
import { expect } from "chai";
1718
import { WorkspaceContext } from "../../../src/WorkspaceContext";
1819
import { folderContextPromise, globalWorkspaceContextPromise } from "../extension.test";
1920
import { SwiftPluginTaskProvider } from "../../../src/tasks/SwiftPluginTaskProvider";
2021
import { FolderContext } from "../../../src/FolderContext";
21-
import { executeTaskAndWaitForResult, mutable, waitForEndTaskProcess } from "../../utilities";
22+
import {
23+
cleanOutput,
24+
executeTaskAndWaitForResult,
25+
mutable,
26+
waitForEndTaskProcess,
27+
} from "../../utilities";
2228

2329
suite("SwiftPluginTaskProvider Test Suite", () => {
2430
let workspaceContext: WorkspaceContext;
@@ -27,9 +33,9 @@ suite("SwiftPluginTaskProvider Test Suite", () => {
2733
suiteSetup(async () => {
2834
workspaceContext = await globalWorkspaceContextPromise;
2935
folderContext = await folderContextPromise("command-plugin");
30-
assert.notEqual(workspaceContext.folders.length, 0);
36+
expect(workspaceContext.folders).to.have.lengthOf(0);
3137
await folderContext.loadSwiftPlugins();
32-
assert.notEqual(folderContext.swiftPackage.plugins.length, 0);
38+
expect(workspaceContext.folders).to.not.have.lengthOf(0);
3339
});
3440

3541
suite("createSwiftPluginTask", () => {
@@ -45,8 +51,8 @@ suite("SwiftPluginTaskProvider Test Suite", () => {
4551
scope: folderContext.workspaceFolder,
4652
});
4753
const { exitCode, output } = await executeTaskAndWaitForResult(task);
48-
assert.equal(exitCode, 0);
49-
assert.equal(output.trim(), "Hello, World!");
54+
expect(exitCode).to.equal(0);
55+
expect(cleanOutput(output)).to.include("Hello, World!");
5056
}).timeout(10000);
5157

5258
test("Exit code on failure", async () => {
@@ -63,7 +69,7 @@ suite("SwiftPluginTaskProvider Test Suite", () => {
6369
);
6470
mutable(task.execution).command = "/definitely/not/swift";
6571
const { exitCode } = await executeTaskAndWaitForResult(task);
66-
assert.notEqual(exitCode, 0);
72+
expect(exitCode).to.not.equal(0);
6773
}).timeout(10000);
6874
});
6975

@@ -77,15 +83,15 @@ suite("SwiftPluginTaskProvider Test Suite", () => {
7783
});
7884

7985
test("provides", () => {
80-
assert.equal(task?.detail, "swift package command_plugin");
86+
expect(task?.detail).to.equal("swift package command_plugin");
8187
});
8288

8389
test("executes", async () => {
8490
assert(task);
8591
const exitPromise = waitForEndTaskProcess(task);
8692
await vscode.tasks.executeTask(task);
8793
const exitCode = await exitPromise;
88-
assert.equal(exitCode, 0);
94+
expect(exitCode).to.equal(0);
8995
}).timeout(30000); // 30 seconds to run
9096
});
9197

@@ -98,15 +104,15 @@ suite("SwiftPluginTaskProvider Test Suite", () => {
98104
});
99105

100106
test("provides", () => {
101-
assert.equal(task?.detail, "swift package command_plugin --foo");
107+
expect(task?.detail).to.equal("swift package command_plugin --foo");
102108
});
103109

104110
test("executes", async () => {
105111
assert(task);
106112
const exitPromise = waitForEndTaskProcess(task);
107113
await vscode.tasks.executeTask(task);
108114
const exitCode = await exitPromise;
109-
assert.equal(exitCode, 0);
115+
expect(exitCode).to.equal(0);
110116
}).timeout(30000); // 30 seconds to run
111117
});
112118
});

test/utilities.ts

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,8 @@
1313
//===----------------------------------------------------------------------===//
1414

1515
import * as vscode from "vscode";
16+
// eslint-disable-next-line @typescript-eslint/no-require-imports
17+
import stripAnsi = require("strip-ansi");
1618
import { SwiftTaskFixture } from "./fixtures";
1719
import { SwiftTask } from "../src/tasks/SwiftTaskProvider";
1820

@@ -130,3 +132,14 @@ export function waitForEndTaskProcess(task: vscode.Task): Promise<number | undef
130132
);
131133
});
132134
}
135+
136+
/**
137+
* Cleans the provided output stripping ansi and
138+
* cleaning extra whitespace
139+
*
140+
* @param output
141+
* @returns cleaned output
142+
*/
143+
export function cleanOutput(output: string) {
144+
return stripAnsi(output).trim();
145+
}

0 commit comments

Comments
 (0)