Skip to content

Commit 108d526

Browse files
committed
Fix tests mocking showAndLog functions
1 parent fcbe3be commit 108d526

7 files changed

Lines changed: 36 additions & 60 deletions

File tree

extensions/ql-vscode/test/__mocks__/appMock.ts

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@ import { testCredentialsWithStub } from "../factories/authentication";
88
import { Credentials } from "../../src/common/authentication";
99
import { AppCommandManager } from "../../src/common/commands";
1010
import { createMockCommandManager } from "./commandsMock";
11+
import { NotificationLogger } from "../../src/common";
1112

1213
export function createMockApp({
1314
extensionPath = "/mock/extension/path",
@@ -18,6 +19,7 @@ export function createMockApp({
1819
credentials = testCredentialsWithStub(),
1920
commands = createMockCommandManager(),
2021
environment = createMockEnvironmentContext(),
22+
logger = createMockLogger(),
2123
}: {
2224
extensionPath?: string;
2325
workspaceStoragePath?: string;
@@ -27,10 +29,11 @@ export function createMockApp({
2729
credentials?: Credentials;
2830
commands?: AppCommandManager;
2931
environment?: EnvironmentContext;
32+
logger?: NotificationLogger;
3033
}): App {
3134
return {
3235
mode: AppMode.Test,
33-
logger: createMockLogger(),
36+
logger,
3437
subscriptions: [],
3538
extensionPath,
3639
workspaceStoragePath,

extensions/ql-vscode/test/vscode-tests/activated-extension/variant-analysis/variant-analysis-monitor.test.ts

Lines changed: 14 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -23,8 +23,8 @@ import {
2323
import { createMockVariantAnalysis } from "../../../factories/variant-analysis/shared/variant-analysis";
2424
import { createMockApp } from "../../../__mocks__/appMock";
2525
import { createMockCommandManager } from "../../../__mocks__/commandsMock";
26-
import * as log from "../../../../src/common/logging";
27-
import { showAndLogWarningMessage } from "../../../../src/common/logging";
26+
import { NotificationLogger } from "../../../../src/common/logging";
27+
import { createMockLogger } from "../../../__mocks__/loggerMock";
2828

2929
jest.setTimeout(60_000);
3030

@@ -39,16 +39,21 @@ describe("Variant Analysis Monitor", () => {
3939
const onVariantAnalysisChangeSpy = jest.fn();
4040
const mockEecuteCommand = jest.fn();
4141

42+
let logger: NotificationLogger;
43+
4244
beforeEach(async () => {
4345
variantAnalysis = createMockVariantAnalysis({});
4446

4547
shouldCancelMonitor = jest.fn();
4648

49+
logger = createMockLogger();
50+
4751
variantAnalysisMonitor = new VariantAnalysisMonitor(
4852
createMockApp({
4953
commands: createMockCommandManager({
5054
executeCommand: mockEecuteCommand,
5155
}),
56+
logger,
5257
}),
5358
shouldCancelMonitor,
5459
);
@@ -200,17 +205,9 @@ describe("Variant Analysis Monitor", () => {
200205
});
201206

202207
describe("when some responses fail", () => {
203-
let showAndLogWarningMessageSpy: jest.SpiedFunction<
204-
typeof showAndLogWarningMessage
205-
>;
206-
207208
let scannedRepos: ApiVariantAnalysisScannedRepository[];
208209

209210
beforeEach(async () => {
210-
showAndLogWarningMessageSpy = jest
211-
.spyOn(log, "showAndLogWarningMessage")
212-
.mockResolvedValue(undefined);
213-
214211
scannedRepos = createMockScannedRepos([
215212
"pending",
216213
"in_progress",
@@ -266,20 +263,20 @@ describe("Variant Analysis Monitor", () => {
266263
it("should only trigger the warning once per error", async () => {
267264
await variantAnalysisMonitor.monitorVariantAnalysis(variantAnalysis);
268265

269-
expect(showAndLogWarningMessageSpy).toBeCalledTimes(4);
270-
expect(showAndLogWarningMessageSpy).toHaveBeenNthCalledWith(
266+
expect(logger.showWarningMessage).toBeCalledTimes(4);
267+
expect(logger.showWarningMessage).toHaveBeenNthCalledWith(
271268
1,
272269
expect.stringMatching(/No internet connection/),
273270
);
274-
expect(showAndLogWarningMessageSpy).toHaveBeenNthCalledWith(
271+
expect(logger.showWarningMessage).toHaveBeenNthCalledWith(
275272
2,
276273
expect.stringMatching(/My different error/),
277274
);
278-
expect(showAndLogWarningMessageSpy).toHaveBeenNthCalledWith(
275+
expect(logger.showWarningMessage).toHaveBeenNthCalledWith(
279276
3,
280277
expect.stringMatching(/My different error/),
281278
);
282-
expect(showAndLogWarningMessageSpy).toHaveBeenNthCalledWith(
279+
expect(logger.showWarningMessage).toHaveBeenNthCalledWith(
283280
4,
284281
expect.stringMatching(/Another different error/),
285282
);
@@ -301,15 +298,7 @@ describe("Variant Analysis Monitor", () => {
301298
});
302299

303300
describe("when a 404 is returned", () => {
304-
let showAndLogWarningMessageSpy: jest.SpiedFunction<
305-
typeof showAndLogWarningMessage
306-
>;
307-
308301
beforeEach(async () => {
309-
showAndLogWarningMessageSpy = jest
310-
.spyOn(log, "showAndLogWarningMessage")
311-
.mockResolvedValue(undefined);
312-
313302
const scannedRepos = createMockScannedRepos([
314303
"pending",
315304
"in_progress",
@@ -342,8 +331,8 @@ describe("Variant Analysis Monitor", () => {
342331
await variantAnalysisMonitor.monitorVariantAnalysis(variantAnalysis);
343332

344333
expect(mockGetVariantAnalysis).toHaveBeenCalledTimes(2);
345-
expect(showAndLogWarningMessageSpy).toHaveBeenCalledTimes(1);
346-
expect(showAndLogWarningMessageSpy).toHaveBeenCalledWith(
334+
expect(logger.showWarningMessage).toHaveBeenCalledTimes(1);
335+
expect(logger.showWarningMessage).toHaveBeenCalledWith(
347336
expect.stringMatching(/not found/i),
348337
);
349338
});

extensions/ql-vscode/test/vscode-tests/cli-integration/packaging/packaging.test.ts

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ import { join } from "path";
44
import { CodeQLCliServer } from "../../../../src/codeql-cli/cli";
55
import { getErrorMessage } from "../../../../src/pure/helpers-pure";
66

7-
import * as log from "../../../../src/common/logging";
7+
import * as log from "../../../../src/common/logging/notifications";
88
import * as vscodeLog from "../../../../src/common/vscode/logging";
99
import {
1010
handleDownloadPacks,
@@ -53,6 +53,7 @@ describe("Packaging commands", () => {
5353
await handleDownloadPacks(cli, progress);
5454
expect(showAndLogExceptionWithTelemetrySpy).not.toHaveBeenCalled();
5555
expect(showAndLogInformationMessageSpy).toHaveBeenCalledWith(
56+
expect.anything(),
5657
expect.stringContaining("Finished downloading packs."),
5758
);
5859
});
@@ -66,6 +67,7 @@ describe("Packaging commands", () => {
6667
await handleDownloadPacks(cli, progress);
6768
expect(showAndLogExceptionWithTelemetrySpy).not.toHaveBeenCalled();
6869
expect(showAndLogInformationMessageSpy).toHaveBeenCalledWith(
70+
expect.anything(),
6971
expect.stringContaining("Finished downloading packs."),
7072
);
7173
});
@@ -97,6 +99,7 @@ describe("Packaging commands", () => {
9799

98100
await handleInstallPackDependencies(cli, progress);
99101
expect(showAndLogInformationMessageSpy).toHaveBeenCalledWith(
102+
expect.anything(),
100103
expect.stringContaining("Finished installing pack dependencies."),
101104
);
102105
});

extensions/ql-vscode/test/vscode-tests/no-workspace/codeql-cli/distribution.test.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
import * as fetch from "node-fetch";
22
import { Range } from "semver";
33

4-
import * as log from "../../../../src/common/logging";
4+
import * as log from "../../../../src/common/logging/notifications";
55
import { extLogger } from "../../../../src/common";
66
import * as fs from "fs-extra";
77
import * as path from "path";

extensions/ql-vscode/test/vscode-tests/no-workspace/data-extensions-editor/extension-pack-picker.test.ts

Lines changed: 10 additions & 31 deletions
Original file line numberDiff line numberDiff line change
@@ -7,11 +7,9 @@ import {
77
QlpacksInfo,
88
ResolveExtensionsResult,
99
} from "../../../../src/codeql-cli/cli";
10-
import * as log from "../../../../src/common/logging";
1110

1211
import { pickExtensionPackModelFile } from "../../../../src/data-extensions-editor/extension-pack-picker";
1312
import { ExtensionPack } from "../../../../src/data-extensions-editor/shared/extension-pack";
14-
import { showAndLogErrorMessage } from "../../../../src/common/logging";
1513
import { createMockLogger } from "../../../__mocks__/loggerMock";
1614

1715
describe("pickExtensionPackModelFile", () => {
@@ -34,9 +32,6 @@ describe("pickExtensionPackModelFile", () => {
3432
const progress = jest.fn();
3533
let showQuickPickSpy: jest.SpiedFunction<typeof window.showQuickPick>;
3634
let showInputBoxSpy: jest.SpiedFunction<typeof window.showInputBox>;
37-
let showAndLogErrorMessageSpy: jest.SpiedFunction<
38-
typeof showAndLogErrorMessage
39-
>;
4035

4136
const logger = createMockLogger();
4237

@@ -82,11 +77,6 @@ describe("pickExtensionPackModelFile", () => {
8277
showInputBoxSpy = jest
8378
.spyOn(window, "showInputBox")
8479
.mockRejectedValue(new Error("Unexpected call to showInputBox"));
85-
showAndLogErrorMessageSpy = jest
86-
.spyOn(log, "showAndLogErrorMessage")
87-
.mockImplementation((msg) => {
88-
throw new Error(`Unexpected call to showAndLogErrorMessage: ${msg}`);
89-
});
9080
});
9181

9282
it("allows choosing an existing extension pack and model file", async () => {
@@ -418,8 +408,6 @@ describe("pickExtensionPackModelFile", () => {
418408
});
419409

420410
it("shows an error when an extension pack resolves to more than 1 location", async () => {
421-
showAndLogErrorMessageSpy.mockResolvedValue(undefined);
422-
423411
const cliServer = mockCliServer(
424412
{
425413
"my-extension-pack": [
@@ -441,10 +429,9 @@ describe("pickExtensionPackModelFile", () => {
441429
token,
442430
),
443431
).toEqual(undefined);
444-
expect(showAndLogErrorMessageSpy).toHaveBeenCalledTimes(1);
445-
expect(showAndLogErrorMessageSpy).toHaveBeenCalledWith(
432+
expect(logger.showErrorMessage).toHaveBeenCalledTimes(1);
433+
expect(logger.showErrorMessage).toHaveBeenCalledWith(
446434
expect.stringMatching(/resolves to multiple paths/),
447-
expect.anything(),
448435
);
449436
expect(showQuickPickSpy).toHaveBeenCalledTimes(1);
450437
expect(showQuickPickSpy).toHaveBeenCalledWith(
@@ -547,7 +534,6 @@ describe("pickExtensionPackModelFile", () => {
547534
);
548535

549536
showQuickPickSpy.mockResolvedValueOnce(undefined);
550-
showAndLogErrorMessageSpy.mockResolvedValue(undefined);
551537

552538
expect(
553539
await pickExtensionPackModelFile(
@@ -572,10 +558,9 @@ describe("pickExtensionPackModelFile", () => {
572558
token,
573559
);
574560
expect(showInputBoxSpy).not.toHaveBeenCalled();
575-
expect(showAndLogErrorMessageSpy).toHaveBeenCalledTimes(1);
576-
expect(showAndLogErrorMessageSpy).toHaveBeenCalledWith(
561+
expect(logger.showErrorMessage).toHaveBeenCalledTimes(1);
562+
expect(logger.showErrorMessage).toHaveBeenCalledWith(
577563
expect.stringMatching(/my-extension-pack/),
578-
expect.anything(),
579564
);
580565
expect(cliServer.resolveQlpacks).toHaveBeenCalled();
581566
expect(cliServer.resolveExtensions).not.toHaveBeenCalled();
@@ -596,7 +581,6 @@ describe("pickExtensionPackModelFile", () => {
596581
await outputFile(join(tmpDir.path, "codeql-pack.yml"), dumpYaml("java"));
597582

598583
showQuickPickSpy.mockResolvedValueOnce(undefined);
599-
showAndLogErrorMessageSpy.mockResolvedValue(undefined);
600584

601585
expect(
602586
await pickExtensionPackModelFile(
@@ -621,10 +605,9 @@ describe("pickExtensionPackModelFile", () => {
621605
token,
622606
);
623607
expect(showInputBoxSpy).not.toHaveBeenCalled();
624-
expect(showAndLogErrorMessageSpy).toHaveBeenCalledTimes(1);
625-
expect(showAndLogErrorMessageSpy).toHaveBeenCalledWith(
608+
expect(logger.showErrorMessage).toHaveBeenCalledTimes(1);
609+
expect(logger.showErrorMessage).toHaveBeenCalledWith(
626610
expect.stringMatching(/my-extension-pack/),
627-
expect.anything(),
628611
);
629612
expect(cliServer.resolveQlpacks).toHaveBeenCalled();
630613
expect(cliServer.resolveExtensions).not.toHaveBeenCalled();
@@ -655,7 +638,6 @@ describe("pickExtensionPackModelFile", () => {
655638
);
656639

657640
showQuickPickSpy.mockResolvedValueOnce(undefined);
658-
showAndLogErrorMessageSpy.mockResolvedValue(undefined);
659641

660642
expect(
661643
await pickExtensionPackModelFile(
@@ -680,10 +662,9 @@ describe("pickExtensionPackModelFile", () => {
680662
token,
681663
);
682664
expect(showInputBoxSpy).not.toHaveBeenCalled();
683-
expect(showAndLogErrorMessageSpy).toHaveBeenCalledTimes(1);
684-
expect(showAndLogErrorMessageSpy).toHaveBeenCalledWith(
665+
expect(logger.showErrorMessage).toHaveBeenCalledTimes(1);
666+
expect(logger.showErrorMessage).toHaveBeenCalledWith(
685667
expect.stringMatching(/my-extension-pack/),
686-
expect.anything(),
687668
);
688669
expect(cliServer.resolveQlpacks).toHaveBeenCalled();
689670
expect(cliServer.resolveExtensions).not.toHaveBeenCalled();
@@ -717,7 +698,6 @@ describe("pickExtensionPackModelFile", () => {
717698
);
718699

719700
showQuickPickSpy.mockResolvedValueOnce(undefined);
720-
showAndLogErrorMessageSpy.mockResolvedValue(undefined);
721701

722702
expect(
723703
await pickExtensionPackModelFile(
@@ -742,10 +722,9 @@ describe("pickExtensionPackModelFile", () => {
742722
token,
743723
);
744724
expect(showInputBoxSpy).not.toHaveBeenCalled();
745-
expect(showAndLogErrorMessageSpy).toHaveBeenCalledTimes(1);
746-
expect(showAndLogErrorMessageSpy).toHaveBeenCalledWith(
725+
expect(logger.showErrorMessage).toHaveBeenCalledTimes(1);
726+
expect(logger.showErrorMessage).toHaveBeenCalledWith(
747727
expect.stringMatching(/my-extension-pack/),
748-
expect.anything(),
749728
);
750729
expect(cliServer.resolveQlpacks).toHaveBeenCalled();
751730
expect(cliServer.resolveExtensions).not.toHaveBeenCalled();

extensions/ql-vscode/test/vscode-tests/no-workspace/data-extensions-editor/external-api-usage-query.test.ts

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -152,6 +152,7 @@ describe("readQueryResults", () => {
152152

153153
expect(await readQueryResults(options)).toBeUndefined();
154154
expect(showAndLogExceptionWithTelemetrySpy).toHaveBeenCalledWith(
155+
expect.anything(),
155156
expect.any(RedactableError),
156157
);
157158
});
@@ -184,6 +185,7 @@ describe("readQueryResults", () => {
184185

185186
expect(await readQueryResults(options)).toBeUndefined();
186187
expect(showAndLogExceptionWithTelemetrySpy).toHaveBeenCalledWith(
188+
expect.anything(),
187189
expect.any(RedactableError),
188190
);
189191
});

extensions/ql-vscode/test/vscode-tests/no-workspace/language-support/contextual/query-resolver.test.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ import * as fs from "fs-extra";
33

44
import { getErrorMessage } from "../../../../../src/pure/helpers-pure";
55

6-
import * as log from "../../../../../src/common/logging";
6+
import * as log from "../../../../../src/common/logging/notifications";
77
import * as workspaceFolders from "../../../../../src/common/vscode/workspace-folders";
88
import * as qlpack from "../../../../../src/databases/qlpack";
99
import {

0 commit comments

Comments
 (0)