Skip to content

Commit 74a12b9

Browse files
committed
Move test to separate file.
1 parent 359e23f commit 74a12b9

2 files changed

Lines changed: 72 additions & 68 deletions

File tree

Lines changed: 72 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,72 @@
1+
import { readFile, readFileSync, readdir } from "fs-extra";
2+
import { join } from "path";
3+
import { load } from "js-yaml";
4+
import { setUpPack } from "../../../../src/data-extensions-editor/data-extensions-editor-queries";
5+
import { dirSync } from "tmp-promise";
6+
import { fetchExternalApiQueries } from "../../../../src/data-extensions-editor/queries";
7+
import { QueryLanguage } from "../../../../src/common/query-language";
8+
import { Mode } from "../../../../src/data-extensions-editor/shared/mode";
9+
10+
describe("setUpPack", () => {
11+
const languages = Object.keys(fetchExternalApiQueries).flatMap((lang) => {
12+
const queryDir = dirSync({ unsafeCleanup: true }).name;
13+
const query = fetchExternalApiQueries[lang as QueryLanguage];
14+
if (!query) {
15+
return [];
16+
}
17+
18+
return { language: lang as QueryLanguage, queryDir, query };
19+
});
20+
21+
test.each(languages)(
22+
"should create files for $language",
23+
async ({ language, queryDir, query }) => {
24+
await setUpPack(queryDir, language);
25+
26+
const queryFiles = await readdir(queryDir);
27+
expect(queryFiles.sort()).toEqual(
28+
[
29+
"codeql-pack.yml",
30+
"FetchExternalApisApplicationMode.ql",
31+
"FetchExternalApisFrameworkMode.ql",
32+
"AutomodelVsCode.qll",
33+
].sort(),
34+
);
35+
36+
const suiteFileContents = await readFile(
37+
join(queryDir, "codeql-pack.yml"),
38+
"utf8",
39+
);
40+
const suiteYaml = load(suiteFileContents);
41+
expect(suiteYaml).toEqual({
42+
name: "codeql/external-api-usage",
43+
version: "0.0.0",
44+
dependencies: {
45+
[`codeql/${language}-all`]: "*",
46+
},
47+
});
48+
49+
Object.values(Mode).forEach((mode) => {
50+
expect(
51+
readFileSync(
52+
join(
53+
queryDir,
54+
`FetchExternalApis${
55+
mode.charAt(0).toUpperCase() + mode.slice(1)
56+
}Mode.ql`,
57+
),
58+
"utf8",
59+
),
60+
).toEqual(query[`${mode}ModeQuery`]);
61+
});
62+
63+
for (const [filename, contents] of Object.entries(
64+
query.dependencies ?? {},
65+
)) {
66+
expect(await readFile(join(queryDir, filename), "utf8")).toEqual(
67+
contents,
68+
);
69+
}
70+
},
71+
);
72+
});

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

Lines changed: 0 additions & 68 deletions
Original file line numberDiff line numberDiff line change
@@ -13,76 +13,8 @@ import { showAndLogExceptionWithTelemetry } from "../../../../src/common/logging
1313
import { QueryLanguage } from "../../../../src/common/query-language";
1414
import { mockedUri } from "../../utils/mocking.helpers";
1515
import { Mode } from "../../../../src/data-extensions-editor/shared/mode";
16-
import { readFile, readFileSync, readdir } from "fs-extra";
17-
import { join } from "path";
18-
import { load } from "js-yaml";
19-
import { setUpPack } from "../../../../src/data-extensions-editor/data-extensions-editor-queries";
2016

2117
describe("external api usage query", () => {
22-
describe("setUpPack", () => {
23-
const languages = Object.keys(fetchExternalApiQueries).flatMap((lang) => {
24-
const queryDir = dirSync({ unsafeCleanup: true }).name;
25-
const query = fetchExternalApiQueries[lang as QueryLanguage];
26-
if (!query) {
27-
return [];
28-
}
29-
30-
return { language: lang as QueryLanguage, queryDir, query };
31-
});
32-
33-
test.each(languages)(
34-
"should create files for $language",
35-
async ({ language, queryDir, query }) => {
36-
await setUpPack(queryDir, language);
37-
38-
const queryFiles = await readdir(queryDir);
39-
expect(queryFiles.sort()).toEqual(
40-
[
41-
"codeql-pack.yml",
42-
"FetchExternalApisApplicationMode.ql",
43-
"FetchExternalApisFrameworkMode.ql",
44-
"AutomodelVsCode.qll",
45-
].sort(),
46-
);
47-
48-
const suiteFileContents = await readFile(
49-
join(queryDir, "codeql-pack.yml"),
50-
"utf8",
51-
);
52-
const suiteYaml = load(suiteFileContents);
53-
expect(suiteYaml).toEqual({
54-
name: "codeql/external-api-usage",
55-
version: "0.0.0",
56-
dependencies: {
57-
[`codeql/${language}-all`]: "*",
58-
},
59-
});
60-
61-
Object.values(Mode).forEach((mode) => {
62-
expect(
63-
readFileSync(
64-
join(
65-
queryDir,
66-
`FetchExternalApis${
67-
mode.charAt(0).toUpperCase() + mode.slice(1)
68-
}Mode.ql`,
69-
),
70-
"utf8",
71-
),
72-
).toEqual(query[`${mode}ModeQuery`]);
73-
});
74-
75-
for (const [filename, contents] of Object.entries(
76-
query.dependencies ?? {},
77-
)) {
78-
expect(await readFile(join(queryDir, filename), "utf8")).toEqual(
79-
contents,
80-
);
81-
}
82-
},
83-
);
84-
});
85-
8618
describe("runQuery", () => {
8719
const language = Object.keys(fetchExternalApiQueries)[
8820
Math.floor(Math.random() * Object.keys(fetchExternalApiQueries).length)

0 commit comments

Comments
 (0)