Skip to content

Commit 558a70e

Browse files
committed
Adjust external api query test
1 parent 7c10447 commit 558a70e

File tree

1 file changed

+10
-45
lines changed

1 file changed

+10
-45
lines changed

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

Lines changed: 10 additions & 45 deletions
Original file line numberDiff line numberDiff line change
@@ -4,11 +4,8 @@ import {
44
} from "../../../../src/data-extensions-editor/external-api-usage-query";
55
import { createMockLogger } from "../../../__mocks__/loggerMock";
66
import { DatabaseKind } from "../../../../src/databases/local-databases";
7-
import { file } from "tmp-promise";
7+
import { dirSync, file } from "tmp-promise";
88
import { QueryResultType } from "../../../../src/query-server/new-messages";
9-
import { readdir, readFile } from "fs-extra";
10-
import { load } from "js-yaml";
11-
import { dirname, join } from "path";
129
import { fetchExternalApiQueries } from "../../../../src/data-extensions-editor/queries";
1310
import * as log from "../../../../src/common/logging/notifications";
1411
import { RedactableError } from "../../../../src/common/errors";
@@ -18,7 +15,11 @@ import { Query } from "../../../../src/data-extensions-editor/queries/query";
1815
import { mockedUri } from "../../utils/mocking.helpers";
1916

2017
describe("runQuery", () => {
21-
const cases = Object.keys(fetchExternalApiQueries).flatMap((lang) => {
18+
const languages = Object.keys(fetchExternalApiQueries);
19+
20+
const cases = languages.flatMap((lang) => {
21+
const queryDir = dirSync({ unsafeCleanup: true }).name;
22+
2223
const query = fetchExternalApiQueries[lang as QueryLanguage];
2324
if (!query) {
2425
return [];
@@ -30,12 +31,13 @@ describe("runQuery", () => {
3031
return Array.from(keys).map((name) => ({
3132
language: lang as QueryLanguage,
3233
queryName: name as keyof Omit<Query, "dependencies">,
34+
queryDir,
3335
}));
3436
});
3537

3638
test.each(cases)(
3739
"should run $queryName for $language",
38-
async ({ language, queryName }) => {
40+
async ({ language, queryName, queryDir }) => {
3941
const logPath = (await file()).path;
4042

4143
const query = fetchExternalApiQueries[language];
@@ -70,6 +72,7 @@ describe("runQuery", () => {
7072
language,
7173
},
7274
queryStorageDir: "/tmp/queries",
75+
queryDir,
7376
progress: jest.fn(),
7477
token: {
7578
isCancellationRequested: false,
@@ -86,7 +89,7 @@ describe("runQuery", () => {
8689
expect(options.queryRunner.createQueryRun).toHaveBeenCalledWith(
8790
"/a/b/c/src.zip",
8891
{
89-
queryPath: expect.stringMatching(/FetchExternalApis\.ql/),
92+
queryPath: expect.stringMatching(/FetchExternalApis\S*\.ql/),
9093
quickEvalPosition: undefined,
9194
quickEvalCountOnly: false,
9295
},
@@ -97,44 +100,6 @@ describe("runQuery", () => {
97100
undefined,
98101
undefined,
99102
);
100-
101-
const queryPath =
102-
options.queryRunner.createQueryRun.mock.calls[0][1].queryPath;
103-
const queryDirectory = dirname(queryPath);
104-
105-
const queryFiles = await readdir(queryDirectory);
106-
expect(queryFiles.sort()).toEqual(
107-
[
108-
"codeql-pack.yml",
109-
"FetchExternalApis.ql",
110-
"AutomodelVsCode.qll",
111-
].sort(),
112-
);
113-
114-
const suiteFileContents = await readFile(
115-
join(queryDirectory, "codeql-pack.yml"),
116-
"utf8",
117-
);
118-
const suiteYaml = load(suiteFileContents);
119-
expect(suiteYaml).toEqual({
120-
name: "codeql/external-api-usage",
121-
version: "0.0.0",
122-
dependencies: {
123-
[`codeql/${language}-all`]: "*",
124-
},
125-
});
126-
127-
expect(
128-
await readFile(join(queryDirectory, "FetchExternalApis.ql"), "utf8"),
129-
).toEqual(query[queryName]);
130-
131-
for (const [filename, contents] of Object.entries(
132-
query.dependencies ?? {},
133-
)) {
134-
expect(await readFile(join(queryDirectory, filename), "utf8")).toEqual(
135-
contents,
136-
);
137-
}
138103
},
139104
);
140105
});

0 commit comments

Comments
 (0)