Change tests to include framework mode queries
This commit is contained in:
@@ -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 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;
|
||||
|
||||
// Test all queries
|
||||
for (const [lang, query] of Object.entries(fetchExternalApiQueries)) {
|
||||
const query = fetchExternalApiQueries[language];
|
||||
if (!query) {
|
||||
throw new Error(`No query found for language ${language}`);
|
||||
}
|
||||
|
||||
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", () => {
|
||||
|
||||
Reference in New Issue
Block a user