Change tests to include framework mode queries

This commit is contained in:
Koen Vlaswinkel
2023-06-22 09:09:46 +02:00
parent 526e7474a5
commit 48b78c1ac1

View File

@@ -14,6 +14,8 @@ import { fetchExternalApiQueries } from "../../../../src/data-extensions-editor/
import * as log from "../../../../src/common/logging/notifications";
import { RedactableError } from "../../../../src/common/errors";
import { showAndLogExceptionWithTelemetry } from "../../../../src/common/logging";
import { QueryLanguage } from "../../../../src/common/query-language";
import { Query } from "../../../../src/data-extensions-editor/queries/query";
function createMockUri(path = "/a/b/c/foo"): Uri {
return {
@@ -29,11 +31,31 @@ function createMockUri(path = "/a/b/c/foo"): Uri {
}
describe("runQuery", () => {
it("runs all queries", async () => {
const logPath = (await file()).path;
const cases = Object.keys(fetchExternalApiQueries).flatMap((lang) => {
const query = fetchExternalApiQueries[lang as QueryLanguage];
if (!query) {
return [];
}
const keys = new Set(Object.keys(query));
keys.delete("dependencies");
return Array.from(keys).map((name) => ({
language: lang as QueryLanguage,
queryName: name as keyof Omit<Query, "dependencies">,
}));
});
test.each(cases)(
"should run $queryName for $language",
async ({ language, queryName }) => {
const logPath = (await file()).path;
const query = fetchExternalApiQueries[language];
if (!query) {
throw new Error(`No query found for language ${language}`);
}
// Test all queries
for (const [lang, query] of Object.entries(fetchExternalApiQueries)) {
const options = {
cliServer: {
resolveQlpacks: jest.fn().mockResolvedValue({
@@ -58,7 +80,7 @@ describe("runQuery", () => {
name: "foo",
datasetUri: createMockUri(),
},
language: lang,
language,
},
queryStorageDir: "/tmp/queries",
progress: jest.fn(),
@@ -67,7 +89,8 @@ describe("runQuery", () => {
onCancellationRequested: jest.fn(),
},
};
const result = await runQuery("applicationModeQuery", options);
const result = await runQuery(queryName, options);
expect(result?.resultType).toEqual(QueryResultType.SUCCESS);
@@ -106,13 +129,13 @@ describe("runQuery", () => {
name: "codeql/external-api-usage",
version: "0.0.0",
dependencies: {
[`codeql/${lang}-all`]: "*",
[`codeql/${language}-all`]: "*",
},
});
expect(
await readFile(join(queryDirectory, "FetchExternalApis.ql"), "utf8"),
).toEqual(query.applicationModeQuery);
).toEqual(query[queryName]);
for (const [filename, contents] of Object.entries(
query.dependencies ?? {},
@@ -121,8 +144,8 @@ describe("runQuery", () => {
contents,
);
}
}
});
},
);
});
describe("readQueryResults", () => {