Skip to content

Commit 48b78c1

Browse files
committed
Change tests to include framework mode queries
1 parent 526e747 commit 48b78c1

File tree

1 file changed

+33
-10
lines changed

1 file changed

+33
-10
lines changed

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

Lines changed: 33 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,8 @@ import { fetchExternalApiQueries } from "../../../../src/data-extensions-editor/
1414
import * as log from "../../../../src/common/logging/notifications";
1515
import { RedactableError } from "../../../../src/common/errors";
1616
import { showAndLogExceptionWithTelemetry } from "../../../../src/common/logging";
17+
import { QueryLanguage } from "../../../../src/common/query-language";
18+
import { Query } from "../../../../src/data-extensions-editor/queries/query";
1719

1820
function createMockUri(path = "/a/b/c/foo"): Uri {
1921
return {
@@ -29,11 +31,31 @@ function createMockUri(path = "/a/b/c/foo"): Uri {
2931
}
3032

3133
describe("runQuery", () => {
32-
it("runs all queries", async () => {
33-
const logPath = (await file()).path;
34+
const cases = Object.keys(fetchExternalApiQueries).flatMap((lang) => {
35+
const query = fetchExternalApiQueries[lang as QueryLanguage];
36+
if (!query) {
37+
return [];
38+
}
39+
40+
const keys = new Set(Object.keys(query));
41+
keys.delete("dependencies");
42+
43+
return Array.from(keys).map((name) => ({
44+
language: lang as QueryLanguage,
45+
queryName: name as keyof Omit<Query, "dependencies">,
46+
}));
47+
});
48+
49+
test.each(cases)(
50+
"should run $queryName for $language",
51+
async ({ language, queryName }) => {
52+
const logPath = (await file()).path;
53+
54+
const query = fetchExternalApiQueries[language];
55+
if (!query) {
56+
throw new Error(`No query found for language ${language}`);
57+
}
3458

35-
// Test all queries
36-
for (const [lang, query] of Object.entries(fetchExternalApiQueries)) {
3759
const options = {
3860
cliServer: {
3961
resolveQlpacks: jest.fn().mockResolvedValue({
@@ -58,7 +80,7 @@ describe("runQuery", () => {
5880
name: "foo",
5981
datasetUri: createMockUri(),
6082
},
61-
language: lang,
83+
language,
6284
},
6385
queryStorageDir: "/tmp/queries",
6486
progress: jest.fn(),
@@ -67,7 +89,8 @@ describe("runQuery", () => {
6789
onCancellationRequested: jest.fn(),
6890
},
6991
};
70-
const result = await runQuery("applicationModeQuery", options);
92+
93+
const result = await runQuery(queryName, options);
7194

7295
expect(result?.resultType).toEqual(QueryResultType.SUCCESS);
7396

@@ -106,13 +129,13 @@ describe("runQuery", () => {
106129
name: "codeql/external-api-usage",
107130
version: "0.0.0",
108131
dependencies: {
109-
[`codeql/${lang}-all`]: "*",
132+
[`codeql/${language}-all`]: "*",
110133
},
111134
});
112135

113136
expect(
114137
await readFile(join(queryDirectory, "FetchExternalApis.ql"), "utf8"),
115-
).toEqual(query.applicationModeQuery);
138+
).toEqual(query[queryName]);
116139

117140
for (const [filename, contents] of Object.entries(
118141
query.dependencies ?? {},
@@ -121,8 +144,8 @@ describe("runQuery", () => {
121144
contents,
122145
);
123146
}
124-
}
125-
});
147+
},
148+
);
126149
});
127150

128151
describe("readQueryResults", () => {

0 commit comments

Comments
 (0)