Skip to content

Commit 9543ab3

Browse files
committed
Update tests.
1 parent 398f16c commit 9543ab3

1 file changed

Lines changed: 49 additions & 26 deletions

File tree

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

Lines changed: 49 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -1,18 +1,25 @@
11
import {
22
readQueryResults,
3-
runQuery,
3+
runExternalApiQueries,
44
} from "../../../../src/data-extensions-editor/external-api-usage-queries";
55
import { createMockLogger } from "../../../__mocks__/loggerMock";
6-
import { DatabaseKind } from "../../../../src/databases/local-databases";
6+
import {
7+
DatabaseItem,
8+
DatabaseKind,
9+
} from "../../../../src/databases/local-databases";
710
import { dirSync, file } from "tmp-promise";
811
import { QueryResultType } from "../../../../src/query-server/new-messages";
912
import { fetchExternalApiQueries } from "../../../../src/data-extensions-editor/queries";
1013
import * as log from "../../../../src/common/logging/notifications";
1114
import { RedactableError } from "../../../../src/common/errors";
1215
import { showAndLogExceptionWithTelemetry } from "../../../../src/common/logging";
1316
import { QueryLanguage } from "../../../../src/common/query-language";
14-
import { mockedUri } from "../../utils/mocking.helpers";
17+
import { mockedObject, mockedUri } from "../../utils/mocking.helpers";
1518
import { Mode } from "../../../../src/data-extensions-editor/shared/mode";
19+
import { join } from "path";
20+
import { CodeQLCliServer } from "../../../../src/codeql-cli/cli";
21+
import { QueryRunner } from "../../../../src/query-server";
22+
import { QueryOutputDir } from "../../../../src/run-queries-shared";
1623

1724
describe("external api usage query", () => {
1825
describe("runQuery", () => {
@@ -27,39 +34,44 @@ describe("external api usage query", () => {
2734
typeof showAndLogExceptionWithTelemetry
2835
> = jest.spyOn(log, "showAndLogExceptionWithTelemetry");
2936

30-
const logPath = (await file()).path;
37+
const outputDir = new QueryOutputDir(join((await file()).path, "1"));
3138

3239
const query = fetchExternalApiQueries[language];
3340
if (!query) {
3441
throw new Error(`No query found for language ${language}`);
3542
}
3643

3744
const options = {
38-
cliServer: {
45+
cliServer: mockedObject<CodeQLCliServer>({
3946
resolveQlpacks: jest.fn().mockResolvedValue({
4047
"my/extensions": "/a/b/c/",
4148
}),
42-
},
43-
queryRunner: {
49+
packPacklist: jest
50+
.fn()
51+
.mockResolvedValue([
52+
"/a/b/c/qlpack.yml",
53+
"/a/b/c/qlpack.lock.yml",
54+
"/a/b/c/qlpack2.yml",
55+
]),
56+
}),
57+
queryRunner: mockedObject<QueryRunner>({
4458
createQueryRun: jest.fn().mockReturnValue({
4559
evaluate: jest.fn().mockResolvedValue({
4660
resultType: QueryResultType.CANCELLATION,
4761
}),
48-
outputDir: {
49-
logPath,
50-
},
62+
outputDir,
5163
}),
5264
logger: createMockLogger(),
53-
},
54-
databaseItem: {
65+
}),
66+
databaseItem: mockedObject<DatabaseItem>({
5567
databaseUri: mockedUri("/a/b/c/src.zip"),
5668
contents: {
5769
kind: DatabaseKind.Database,
5870
name: "foo",
5971
datasetUri: mockedUri(),
6072
},
6173
language,
62-
},
74+
}),
6375
queryStorageDir: "/tmp/queries",
6476
queryDir,
6577
progress: jest.fn(),
@@ -69,7 +81,9 @@ describe("external api usage query", () => {
6981
},
7082
};
7183

72-
expect(await runQuery(Mode.Application, options)).toBeUndefined();
84+
expect(
85+
await runExternalApiQueries(Mode.Application, options),
86+
).toBeUndefined();
7387
expect(showAndLogExceptionWithTelemetrySpy).toHaveBeenCalledWith(
7488
expect.anything(),
7589
undefined,
@@ -78,39 +92,48 @@ describe("external api usage query", () => {
7892
});
7993

8094
it("should run query for random language", async () => {
81-
const logPath = (await file()).path;
95+
const outputDir = new QueryOutputDir(join((await file()).path, "1"));
8296

8397
const query = fetchExternalApiQueries[language];
8498
if (!query) {
8599
throw new Error(`No query found for language ${language}`);
86100
}
87101

88102
const options = {
89-
cliServer: {
103+
cliServer: mockedObject<CodeQLCliServer>({
90104
resolveQlpacks: jest.fn().mockResolvedValue({
91105
"my/extensions": "/a/b/c/",
92106
}),
93-
},
94-
queryRunner: {
107+
packPacklist: jest
108+
.fn()
109+
.mockResolvedValue([
110+
"/a/b/c/qlpack.yml",
111+
"/a/b/c/qlpack.lock.yml",
112+
"/a/b/c/qlpack2.yml",
113+
]),
114+
bqrsInfo: jest.fn().mockResolvedValue({
115+
"result-sets": [],
116+
}),
117+
}),
118+
queryRunner: mockedObject<QueryRunner>({
95119
createQueryRun: jest.fn().mockReturnValue({
96120
evaluate: jest.fn().mockResolvedValue({
97121
resultType: QueryResultType.SUCCESS,
122+
outputDir,
98123
}),
99-
outputDir: {
100-
logPath,
101-
},
124+
outputDir,
102125
}),
103126
logger: createMockLogger(),
104-
},
105-
databaseItem: {
127+
}),
128+
databaseItem: mockedObject<DatabaseItem>({
106129
databaseUri: mockedUri("/a/b/c/src.zip"),
107130
contents: {
108131
kind: DatabaseKind.Database,
109132
name: "foo",
110133
datasetUri: mockedUri(),
111134
},
112135
language,
113-
},
136+
}),
114137
queryStorageDir: "/tmp/queries",
115138
queryDir,
116139
progress: jest.fn(),
@@ -120,9 +143,9 @@ describe("external api usage query", () => {
120143
},
121144
};
122145

123-
const result = await runQuery(Mode.Framework, options);
146+
const result = await runExternalApiQueries(Mode.Framework, options);
124147

125-
expect(result?.resultType).toEqual(QueryResultType.SUCCESS);
148+
expect(result).not.toBeUndefined;
126149

127150
expect(options.cliServer.resolveQlpacks).toHaveBeenCalledTimes(1);
128151
expect(options.cliServer.resolveQlpacks).toHaveBeenCalledWith([], true);

0 commit comments

Comments
 (0)