Skip to content

Commit a4c094d

Browse files
committed
refactoring changes
1 parent 68790c8 commit a4c094d

File tree

3 files changed

+22
-24
lines changed

3 files changed

+22
-24
lines changed

src/toolchain/swiftly.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -85,7 +85,7 @@ export class Swiftly {
8585
const response = ListAvailableResult.parse(JSON.parse(stdout));
8686
return response.toolchains.map(t => t.name);
8787
} catch (error) {
88-
throw new Error("Failed to retrieve Swiftly installations from disk: ${error.message}");
88+
throw new Error(`Failed to retrieve Swiftly installations from disk: ${(error as Error).message}`);
8989
}
9090
}
9191

@@ -107,7 +107,7 @@ export class Swiftly {
107107
.filter((toolchain): toolchain is string => typeof toolchain === "string")
108108
.map(toolchain => path.join(swiftlyHomeDir, "toolchains", toolchain));
109109
} catch (error) {
110-
throw new Error("Failed to retrieve Swiftly installations from disk: ${error.message}");
110+
throw new Error(`Failed to retrieve Swiftly installations from disk: ${(error as Error).message}`);
111111
}
112112
}
113113

test/unit-tests/toolchain/swiftly.test.ts

Lines changed: 7 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -13,27 +13,23 @@
1313
//===----------------------------------------------------------------------===//
1414

1515
import { expect } from "chai";
16-
import * as sinon from "sinon";
1716
import { Swiftly } from "../../../src/toolchain/swiftly";
1817
import * as utilities from "../../../src/utilities/utilities";
18+
import { mockGlobalModule } from "../../MockUtils";
1919

2020
suite("Swiftly Unit Tests", () => {
21-
let execFileStub: sinon.SinonStub;
21+
const mockUtilities = mockGlobalModule(utilities);
2222
let swiftly: Swiftly;
2323

2424
setup(() => {
25-
execFileStub = sinon.stub(utilities, "execFile");
2625
swiftly = new Swiftly();
2726
});
2827

29-
teardown(() => {
30-
sinon.restore();
31-
});
3228

3329
suite("getSwiftlyToolchainInstalls", () => {
3430
test("should return toolchain names from list-available command for version 1.1.0", async () => {
3531
// Mock version check to return 1.1.0
36-
execFileStub.withArgs("swiftly", ["--version"]).resolves({
32+
mockUtilities.execFile.withArgs("swiftly", ["--version"]).resolves({
3733
stdout: "1.1.0\n",
3834
stderr: ""
3935
});
@@ -81,7 +77,7 @@ suite("Swiftly Unit Tests", () => {
8177
]
8278
};
8379

84-
execFileStub.withArgs("swiftly", ["list-available", "--format=json"]).resolves({
80+
mockUtilities.execFile.withArgs("swiftly", ["list-available", "--format=json"]).resolves({
8581
stdout: JSON.stringify(jsonOutput),
8682
stderr: ""
8783
});
@@ -94,8 +90,8 @@ suite("Swiftly Unit Tests", () => {
9490
"swift-DEVELOPMENT-SNAPSHOT-2023-10-15-a"
9591
]);
9692

97-
expect(execFileStub.calledWith("swiftly", ["--version"])).to.be.true;
98-
expect(execFileStub.calledWith("swiftly", ["list-available", "--format=json"])).to.be.true;
93+
expect(mockUtilities.execFile).to.have.been.calledWith("swiftly", ["--version"]);
94+
expect(mockUtilities.execFile).to.have.been.calledWith("swiftly", ["list-available", "--format=json"]);
9995
});
10096

10197
test("should return empty array when platform is not supported", async () => {
@@ -108,7 +104,7 @@ suite("Swiftly Unit Tests", () => {
108104
const result = await swiftly.getSwiftlyToolchainInstalls();
109105

110106
expect(result).to.deep.equal([]);
111-
expect(execFileStub.called).to.be.false;
107+
expect(mockUtilities.execFile).not.have.been.called;
112108

113109
Object.defineProperty(process, "platform", {
114110
value: originalPlatform,

test/unit-tests/toolchain/toolchain.test.ts

Lines changed: 13 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -19,16 +19,18 @@ import * as utilities from "../../../src/utilities/utilities";
1919
import { SwiftToolchain } from "../../../src/toolchain/toolchain";
2020
import { Version } from "../../../src/utilities/version";
2121
import { mockGlobalModule, mockGlobalValue } from "../../MockUtils";
22+
import { swiftly } from "../../../src/toolchain/swiftly";
2223

2324
suite("SwiftToolchain Unit Test Suite", () => {
2425
const mockedUtilities = mockGlobalModule(utilities);
2526
const mockedPlatform = mockGlobalValue(process, "platform");
2627

2728
setup(() => {
2829
mockFS({});
29-
mockedUtilities.execFile.rejects(
30-
new Error("execFile was not properly mocked for the test")
31-
);
30+
mockedUtilities.execFile.withArgs("swiftly", ["--version"]).resolves({
31+
stdout: "1.0.0\n",
32+
stderr: ""
33+
});
3234
});
3335

3436
teardown(() => {
@@ -311,7 +313,7 @@ suite("SwiftToolchain Unit Test Suite", () => {
311313
}),
312314
});
313315

314-
const toolchains = await SwiftToolchain.getSwiftlyToolchainInstalls();
316+
const toolchains = await swiftly.getSwiftlyToolchainInstalls();
315317
expect(toolchains).to.deep.equal([
316318
path.join(mockHomeDir, "toolchains", "swift-5.9.0"),
317319
path.join(mockHomeDir, "toolchains", "swift-6.0.0"),
@@ -329,7 +331,7 @@ suite("SwiftToolchain Unit Test Suite", () => {
329331
}),
330332
});
331333

332-
const toolchains = await SwiftToolchain.getSwiftlyToolchainInstalls();
334+
const toolchains = await swiftly.getSwiftlyToolchainInstalls();
333335
expect(toolchains).to.deep.equal([
334336
path.join(mockHomeDir, "toolchains", "swift-5.9.0"),
335337
path.join(mockHomeDir, "toolchains", "swift-6.0.0"),
@@ -340,7 +342,7 @@ suite("SwiftToolchain Unit Test Suite", () => {
340342
mockedPlatform.setValue("linux");
341343
mockedEnv.setValue({});
342344

343-
const toolchains = await SwiftToolchain.getSwiftlyToolchainInstalls();
345+
const toolchains = await swiftly.getSwiftlyToolchainInstalls();
344346
expect(toolchains).to.be.empty;
345347
});
346348

@@ -351,8 +353,8 @@ suite("SwiftToolchain Unit Test Suite", () => {
351353

352354
mockFS({});
353355

354-
await expect(SwiftToolchain.getSwiftlyToolchainInstalls()).to.be.rejectedWith(
355-
"Failed to retrieve Swiftly installations from disk."
356+
await expect(swiftly.getSwiftlyToolchainInstalls()).to.be.rejectedWith(
357+
"Failed to retrieve Swiftly installations from disk: ENOENT, no such file or directory '/home/user/.swiftly/config.json'"
356358
);
357359
});
358360

@@ -367,13 +369,13 @@ suite("SwiftToolchain Unit Test Suite", () => {
367369
}),
368370
});
369371

370-
const toolchains = await SwiftToolchain.getSwiftlyToolchainInstalls();
372+
const toolchains = await swiftly.getSwiftlyToolchainInstalls();
371373
expect(toolchains).to.be.empty;
372374
});
373375

374376
test("returns empty array on Windows", async () => {
375377
mockedPlatform.setValue("win32");
376-
const toolchains = await SwiftToolchain.getSwiftlyToolchainInstalls();
378+
const toolchains = await swiftly.getSwiftlyToolchainInstalls();
377379
expect(toolchains).to.be.empty;
378380
});
379381

@@ -388,7 +390,7 @@ suite("SwiftToolchain Unit Test Suite", () => {
388390
}),
389391
});
390392

391-
const toolchains = await SwiftToolchain.getSwiftlyToolchainInstalls();
393+
const toolchains = await swiftly.getSwiftlyToolchainInstalls();
392394
expect(toolchains).to.deep.equal([
393395
path.join(mockHomeDir, "toolchains", "swift-5.9.0"),
394396
path.join(mockHomeDir, "toolchains", "swift-6.0.0"),

0 commit comments

Comments
 (0)