Skip to content

Commit ec6a725

Browse files
Merge pull request #3251 from github/robertbrignull/test_published_pack
Add an integration test of runVariantAnalysisFromPublishedPack
2 parents 75065f3 + 6b1a056 commit ec6a725

File tree

2 files changed

+34
-1
lines changed

2 files changed

+34
-1
lines changed

extensions/ql-vscode/src/variant-analysis/variant-analysis-manager.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -214,7 +214,7 @@ export class VariantAnalysisManager
214214
}
215215
}
216216

217-
private async runVariantAnalysisFromPublishedPack(): Promise<void> {
217+
public async runVariantAnalysisFromPublishedPack(): Promise<void> {
218218
return withProgress(async (progress, token) => {
219219
progress({
220220
maxStep: 8,

extensions/ql-vscode/test/vscode-tests/cli-integration/variant-analysis/variant-analysis-manager.test.ts

Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -388,4 +388,37 @@ describe("Variant Analysis Manager", () => {
388388
}
389389
}
390390
});
391+
392+
describe("runVariantAnalysisFromPublishedPack", () => {
393+
it("should download pack for correct language and identify problem queries", async () => {
394+
const showQuickPickSpy = jest
395+
.spyOn(window, "showQuickPick")
396+
.mockResolvedValue(
397+
mockedQuickPickItem({
398+
label: "JavaScript",
399+
description: "javascript",
400+
language: "javascript",
401+
}),
402+
);
403+
404+
const runVariantAnalysisMock = jest.fn();
405+
variantAnalysisManager.runVariantAnalysis = runVariantAnalysisMock;
406+
407+
await variantAnalysisManager.runVariantAnalysisFromPublishedPack();
408+
409+
expect(showQuickPickSpy).toHaveBeenCalledTimes(1);
410+
expect(runVariantAnalysisMock).toHaveBeenCalledTimes(1);
411+
412+
const queries: Uri[] = runVariantAnalysisMock.mock.calls[0][0];
413+
// Should include queries. Just check that at least one known query exists.
414+
// It doesn't particularly matter which query we check for.
415+
expect(
416+
queries.find((q) => q.fsPath.includes("PostMessageStar.ql")),
417+
).toBeDefined();
418+
// Should not include non-problem queries.
419+
expect(
420+
queries.find((q) => q.fsPath.includes("LinesOfCode.ql")),
421+
).not.toBeDefined();
422+
});
423+
});
391424
});

0 commit comments

Comments
 (0)