Skip to content

Commit 9703d10

Browse files
authored
Merge pull request #2122 from github/koesie10/remove-as-unknown-as-quickpickitem
Remove `as unknown as QuickPickItem`
2 parents 53492b5 + b0cc4c2 commit 9703d10

File tree

6 files changed

+44
-33
lines changed

6 files changed

+44
-33
lines changed

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

Lines changed: 21 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import { extensions, QuickPickItem, window } from "vscode";
1+
import { extensions, window } from "vscode";
22
import { join } from "path";
33

44
import { CodeQLCliServer } from "../../../src/cli";
@@ -10,6 +10,7 @@ import {
1010
handleDownloadPacks,
1111
handleInstallPackDependencies,
1212
} from "../../../src/packaging";
13+
import { mockedQuickPickItem } from "../utils/mocking.helpers";
1314

1415
// up to 3 minutes per test
1516
jest.setTimeout(3 * 60 * 1000);
@@ -56,7 +57,7 @@ describe("Packaging commands", () => {
5657

5758
it("should download all core query packs", async () => {
5859
quickPickSpy.mockResolvedValue(
59-
"Download all core query packs" as unknown as QuickPickItem,
60+
mockedQuickPickItem("Download all core query packs"),
6061
);
6162

6263
await handleDownloadPacks(cli, progress);
@@ -67,7 +68,7 @@ describe("Packaging commands", () => {
6768

6869
it("should download valid user-specified pack", async () => {
6970
quickPickSpy.mockResolvedValue(
70-
"Download custom specified pack" as unknown as QuickPickItem,
71+
mockedQuickPickItem("Download custom specified pack"),
7172
);
7273
inputBoxSpy.mockResolvedValue("codeql/csharp-solorigate-queries");
7374

@@ -79,7 +80,7 @@ describe("Packaging commands", () => {
7980

8081
it("should show error when downloading invalid user-specified pack", async () => {
8182
quickPickSpy.mockResolvedValue(
82-
"Download custom specified pack" as unknown as QuickPickItem,
83+
mockedQuickPickItem("Download custom specified pack"),
8384
);
8485
inputBoxSpy.mockResolvedValue("foo/[email protected]");
8586

@@ -93,12 +94,14 @@ describe("Packaging commands", () => {
9394

9495
it("should install valid workspace pack", async () => {
9596
const rootDir = join(__dirname, "./data");
96-
quickPickSpy.mockResolvedValue([
97-
{
98-
label: "integration-test-queries-javascript",
99-
packRootDir: [rootDir],
100-
},
101-
] as unknown as QuickPickItem);
97+
quickPickSpy.mockResolvedValue(
98+
mockedQuickPickItem([
99+
{
100+
label: "integration-test-queries-javascript",
101+
packRootDir: [rootDir],
102+
},
103+
]),
104+
);
102105

103106
await handleInstallPackDependencies(cli, progress);
104107
expect(showAndLogInformationMessageSpy).toHaveBeenCalledWith(
@@ -108,12 +111,14 @@ describe("Packaging commands", () => {
108111

109112
it("should throw an error when installing invalid workspace pack", async () => {
110113
const rootDir = join(__dirname, "../data-invalid-pack");
111-
quickPickSpy.mockResolvedValue([
112-
{
113-
label: "foo/bar",
114-
packRootDir: [rootDir],
115-
},
116-
] as unknown as QuickPickItem);
114+
quickPickSpy.mockResolvedValue(
115+
mockedQuickPickItem([
116+
{
117+
label: "foo/bar",
118+
packRootDir: [rootDir],
119+
},
120+
]),
121+
);
117122

118123
try {
119124
// expect this to throw an error

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

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,6 @@ import {
22
CancellationTokenSource,
33
commands,
44
extensions,
5-
QuickPickItem,
65
Uri,
76
window,
87
} from "vscode";
@@ -28,6 +27,7 @@ import { Repository } from "../../../../src/variant-analysis/gh-api/repository";
2827
import { DbManager } from "../../../../src/databases/db-manager";
2928
import { ExtensionApp } from "../../../../src/common/vscode/vscode-app";
3029
import { DbConfigStore } from "../../../../src/databases/config/db-config-store";
30+
import { mockedQuickPickItem } from "../../utils/mocking.helpers";
3131

3232
// up to 3 minutes per test
3333
jest.setTimeout(3 * 60 * 1000);
@@ -88,7 +88,7 @@ describe("Variant Analysis Manager", () => {
8888
beforeEach(async () => {
8989
jest
9090
.spyOn(window, "showQuickPick")
91-
.mockResolvedValueOnce("javascript" as unknown as QuickPickItem);
91+
.mockResolvedValueOnce(mockedQuickPickItem("javascript"));
9292

9393
cancellationTokenSource = new CancellationTokenSource();
9494

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

Lines changed: 3 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -5,14 +5,14 @@ import {
55
commands,
66
ConfigurationTarget,
77
extensions,
8-
QuickPickItem,
98
TextDocument,
109
window,
1110
workspace,
1211
} from "vscode";
1312

1413
import { CodeQLExtensionInterface } from "../../../../src/extension";
1514
import { MockGitHubApiServer } from "../../../../src/mocks/mock-gh-api-server";
15+
import { mockedQuickPickItem } from "../../utils/mocking.helpers";
1616
import {
1717
CANARY_FEATURES,
1818
setRemoteControllerRepo,
@@ -76,9 +76,7 @@ describe("Variant Analysis Submission Integration", () => {
7676
await showQlDocument("query.ql");
7777

7878
// Select target language for your query
79-
quickPickSpy.mockResolvedValueOnce(
80-
"javascript" as unknown as QuickPickItem,
81-
);
79+
quickPickSpy.mockResolvedValueOnce(mockedQuickPickItem("javascript"));
8280

8381
await commands.executeCommand("codeQL.runVariantAnalysis");
8482

@@ -117,9 +115,7 @@ describe("Variant Analysis Submission Integration", () => {
117115
await showQlDocument("query.ql");
118116

119117
// Select target language for your query
120-
quickPickSpy.mockResolvedValueOnce(
121-
"javascript" as unknown as QuickPickItem,
122-
);
118+
quickPickSpy.mockResolvedValueOnce(mockedQuickPickItem("javascript"));
123119

124120
await commands.executeCommand("codeQL.runVariantAnalysis");
125121

extensions/ql-vscode/test/vscode-tests/no-workspace/databaseFetcher.test.ts

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,14 @@
11
import { join } from "path";
22
import { createFileSync, mkdirSync } from "fs-extra";
33
import * as tmp from "tmp";
4-
import { QuickPickItem, window } from "vscode";
4+
import { window } from "vscode";
55

66
import {
77
convertGithubNwoToDatabaseUrl,
88
findDirWithFile,
99
} from "../../../src/databaseFetcher";
1010
import * as Octokit from "@octokit/rest";
11+
import { mockedQuickPickItem } from "../utils/mocking.helpers";
1112

1213
// These tests make API calls and may need extra time to complete.
1314
jest.setTimeout(10000);
@@ -71,7 +72,7 @@ describe("databaseFetcher", () => {
7172
],
7273
};
7374
mockRequest.mockResolvedValue(mockApiResponse);
74-
quickPickSpy.mockResolvedValue("javascript" as unknown as QuickPickItem);
75+
quickPickSpy.mockResolvedValue(mockedQuickPickItem("javascript"));
7576
const githubRepo = "github/codeql";
7677
const result = await convertGithubNwoToDatabaseUrl(
7778
githubRepo,

extensions/ql-vscode/test/vscode-tests/no-workspace/query-history/query-history-manager.test.ts

Lines changed: 8 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -22,10 +22,10 @@ import { createMockVariantAnalysisHistoryItem } from "../../../factories/query-h
2222
import { VariantAnalysisHistoryItem } from "../../../../src/query-history/variant-analysis-history-item";
2323
import { QueryStatus } from "../../../../src/query-status";
2424
import { VariantAnalysisStatus } from "../../../../src/variant-analysis/shared/variant-analysis";
25-
import { QuickPickItem, TextEditor } from "vscode";
25+
import { TextEditor } from "vscode";
2626
import { WebviewReveal } from "../../../../src/interface-utils";
2727
import * as helpers from "../../../../src/helpers";
28-
import { mockedObject } from "../../utils/mocking.helpers";
28+
import { mockedObject, mockedQuickPickItem } from "../../utils/mocking.helpers";
2929
import { createMockQueryHistoryDirs } from "../../../factories/query-history/query-history-dirs";
3030

3131
describe("QueryHistoryManager", () => {
@@ -978,9 +978,12 @@ describe("QueryHistoryManager", () => {
978978
it("should find the second query to compare when one is selected", async () => {
979979
const thisQuery = localQueryHistory[3];
980980
queryHistoryManager = await createMockQueryHistory(allHistory);
981-
showQuickPickSpy.mockResolvedValue({
982-
query: localQueryHistory[0],
983-
} as unknown as QuickPickItem);
981+
showQuickPickSpy.mockResolvedValue(
982+
mockedQuickPickItem({
983+
label: "Query 1",
984+
query: localQueryHistory[0],
985+
}),
986+
);
984987

985988
const otherQuery = await (
986989
queryHistoryManager as any

extensions/ql-vscode/test/vscode-tests/utils/mocking.helpers.ts

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
1+
import { QuickPickItem, window, Uri } from "vscode";
12
import { DatabaseItem } from "../../../src/local-databases";
2-
import { Uri } from "vscode";
33

44
export type DeepPartial<T> = T extends object
55
? {
@@ -57,3 +57,9 @@ export function mockDatabaseItem(
5757
...props,
5858
});
5959
}
60+
61+
export function mockedQuickPickItem<T extends QuickPickItem | string>(
62+
value: T | T[],
63+
): Awaited<ReturnType<typeof window.showQuickPick>> {
64+
return value as Awaited<ReturnType<typeof window.showQuickPick>>;
65+
}

0 commit comments

Comments
 (0)