Skip to content

Commit 22bf3e5

Browse files
committed
Fix failing tests
1 parent baa2342 commit 22bf3e5

File tree

2 files changed

+34
-54
lines changed

2 files changed

+34
-54
lines changed

test/unit-tests/commands/captureDiagnostics.test.ts renamed to test/integration-tests/commands/captureDiagnostics.test.ts

Lines changed: 25 additions & 53 deletions
Original file line numberDiff line numberDiff line change
@@ -15,97 +15,69 @@
1515
import * as vscode from "vscode";
1616
import * as path from "path";
1717
import * as os from "os";
18-
import * as fs from "fs/promises";
18+
import { mkdir, rm } from "fs/promises";
1919
import * as decompress from "decompress";
2020
import { expect } from "chai";
21-
import { instance, MockedObject, mockFn, mockGlobalObject, mockObject } from "../../MockUtils";
2221
import { captureDiagnostics } from "../../../src/commands/captureDiagnostics";
2322
import { WorkspaceContext } from "../../../src/WorkspaceContext";
24-
import { FolderContext } from "../../../src/FolderContext";
25-
import { Version } from "../../../src/utilities/version";
26-
import { SwiftToolchain } from "../../../src/toolchain/toolchain";
27-
import { SwiftLogger } from "../../../src/logging/SwiftLogger";
23+
import { mockGlobalObject } from "../../MockUtils";
24+
import { activateExtensionForSuite, folderInRootWorkspace } from "../utilities/testutilities";
2825

2926
suite("captureDiagnostics Test Suite", () => {
30-
let mockContext: MockedObject<WorkspaceContext>;
31-
let mockedLogger: MockedObject<SwiftLogger>;
32-
let mockedToolchain: MockedObject<SwiftToolchain>;
27+
let workspaceContext: WorkspaceContext;
3328
const mockWindow = mockGlobalObject(vscode, "window");
3429

30+
activateExtensionForSuite({
31+
async setup(ctx) {
32+
workspaceContext = ctx;
33+
},
34+
testAssets: ["defaultPackage"],
35+
});
36+
3537
setup(() => {
36-
mockedToolchain = mockObject<SwiftToolchain>({
37-
swiftVersion: new Version(6, 0, 0),
38-
diagnostics: "some diagnostics",
39-
});
40-
const mockedFolder = mockObject<FolderContext>({
41-
folder: vscode.Uri.file("/folder1"),
42-
toolchain: instance(mockedToolchain),
43-
});
44-
mockedLogger = mockObject<SwiftLogger>({
45-
info: mockFn(),
46-
logs: ["hello", "world"],
47-
});
48-
mockContext = mockObject<WorkspaceContext>({
49-
folders: [instance(mockedFolder)],
50-
globalToolchainSwiftVersion: new Version(6, 0, 0),
51-
logger: instance(mockedLogger),
52-
});
5338
mockWindow.showInformationMessage.resolves("Minimal" as any);
5439
});
5540

5641
test("Should capture dianostics to a zip file", async () => {
57-
const zipPath = await captureDiagnostics(instance(mockContext));
42+
const zipPath = await captureDiagnostics(workspaceContext);
5843
expect(zipPath).to.not.be.undefined;
5944
});
6045

6146
test("Should validate a single folder project zip file has contents", async () => {
62-
const zipPath = await captureDiagnostics(instance(mockContext));
47+
const zipPath = await captureDiagnostics(workspaceContext);
6348
expect(zipPath).to.not.be.undefined;
6449

6550
const { files, folder } = await decompressZip(zipPath as string);
6651

6752
validate(
6853
files.map(file => file.path),
69-
["extension-logs.txt", "folder1-[a-z0-9]+-settings.txt"]
54+
["swift-vscode-extension.log", "defaultPackage-[a-z0-9]+-settings.txt"]
7055
);
7156

72-
await fs.rm(folder, { recursive: true, force: true });
57+
await rm(folder, { recursive: true, force: true });
7358
});
7459

7560
suite("Multiple folder project", () => {
76-
setup(() => {
77-
const mockedFolder1 = mockObject<FolderContext>({
78-
folder: vscode.Uri.file("/folder1"),
79-
toolchain: instance(mockedToolchain),
80-
});
81-
const mockedFolder2 = mockObject<FolderContext>({
82-
folder: vscode.Uri.file("/folder2"),
83-
toolchain: instance(mockedToolchain),
84-
});
85-
mockContext = mockObject<WorkspaceContext>({
86-
folders: [instance(mockedFolder1), instance(mockedFolder2)],
87-
globalToolchainSwiftVersion: new Version(6, 0, 0),
88-
logger: instance(mockedLogger),
89-
});
90-
mockWindow.showInformationMessage.resolves("Minimal" as any);
61+
setup(async () => {
62+
await folderInRootWorkspace("dependencies", workspaceContext);
9163
});
9264

9365
test("Should validate a multiple folder project zip file has contents", async () => {
94-
const zipPath = await captureDiagnostics(instance(mockContext));
66+
const zipPath = await captureDiagnostics(workspaceContext);
9567
expect(zipPath).to.not.be.undefined;
9668

9769
const { files, folder } = await decompressZip(zipPath as string);
9870
validate(
9971
files.map(file => file.path),
10072
[
101-
"extension-logs.txt",
102-
"folder1/",
103-
"folder1/folder1-[a-z0-9]+-settings.txt",
104-
"folder2/",
105-
"folder2/folder2-[a-z0-9]+-settings.txt",
73+
"swift-vscode-extension.log",
74+
"defaultPackage/",
75+
"defaultPackage/defaultPackage-[a-z0-9]+-settings.txt",
76+
"dependencies/",
77+
"dependencies/dependencies-[a-z0-9]+-settings.txt",
10678
]
10779
);
108-
await fs.rm(folder, { recursive: true, force: true });
80+
await rm(folder, { recursive: true, force: true });
10981
});
11082
});
11183

@@ -116,7 +88,7 @@ suite("captureDiagnostics Test Suite", () => {
11688
os.tmpdir(),
11789
`vscode-swift-test-${Math.random().toString(36).substring(7)}`
11890
);
119-
await fs.mkdir(tempDir, { recursive: true });
91+
await mkdir(tempDir, { recursive: true });
12092
return { folder: tempDir, files: await decompress(zipPath as string, tempDir) };
12193
}
12294

test/unit-tests/sourcekit-lsp/LanguageClientManager.test.ts

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -50,6 +50,8 @@ import {
5050
DidChangeActiveDocumentParams,
5151
} from "../../../src/sourcekit-lsp/extensions/DidChangeActiveDocumentRequest";
5252
import { SwiftLogger } from "../../../src/logging/SwiftLogger";
53+
import { SwiftOutputChannel } from "../../../src/logging/SwiftOutputChannel";
54+
import { SwiftLoggerFactory } from "../../../src/logging/SwiftLoggerFactory";
5355

5456
suite("LanguageClientManager Suite", () => {
5557
let languageClientFactoryMock: MockedObject<LanguageClientFactory>;
@@ -60,6 +62,7 @@ suite("LanguageClientManager Suite", () => {
6062
let mockedFolder: MockedObject<FolderContext>;
6163
let didChangeFoldersEmitter: AsyncEventEmitter<FolderEvent>;
6264
let mockLogger: MockedObject<SwiftLogger>;
65+
let mockLoggerFactory: MockedObject<SwiftLoggerFactory>;
6366
let mockedToolchain: MockedObject<SwiftToolchain>;
6467
let mockedBuildFlags: MockedObject<BuildFlags>;
6568

@@ -113,6 +116,9 @@ suite("LanguageClientManager Suite", () => {
113116
info: s => s,
114117
debug: s => s,
115118
});
119+
mockLoggerFactory = mockObject<SwiftLoggerFactory>({
120+
create: mockFn(s => s.returns(mockObject<SwiftOutputChannel>({}))),
121+
});
116122
didChangeFoldersEmitter = new AsyncEventEmitter();
117123
mockedFolder = mockObject<FolderContext>({
118124
isRootFolder: false,
@@ -127,6 +133,7 @@ suite("LanguageClientManager Suite", () => {
127133
globalToolchain: instance(mockedToolchain),
128134
globalToolchainSwiftVersion: new Version(6, 0, 0),
129135
logger: instance(mockLogger),
136+
loggerFactory: instance(mockLoggerFactory),
130137
})
131138
),
132139
swiftVersion: new Version(6, 0, 0),
@@ -136,6 +143,7 @@ suite("LanguageClientManager Suite", () => {
136143
globalToolchain: instance(mockedToolchain),
137144
globalToolchainSwiftVersion: new Version(6, 0, 0),
138145
logger: instance(mockLogger),
146+
loggerFactory: instance(mockLoggerFactory),
139147
subscriptions: [],
140148
folders: [instance(mockedFolder)],
141149
onDidChangeFolders: mockFn(s => s.callsFake(didChangeFoldersEmitter.event)),
@@ -150,7 +158,7 @@ suite("LanguageClientManager Suite", () => {
150158
code2ProtocolConverter: instance(mockedConverter),
151159
clientOptions: {},
152160
outputChannel: instance(
153-
mockObject<vscode.OutputChannel>({
161+
mockObject<SwiftOutputChannel>({
154162
dispose: mockFn(),
155163
})
156164
),

0 commit comments

Comments
 (0)