Skip to content

Commit 9dd7476

Browse files
Use refresh promise in tests
1 parent 5405b1b commit 9dd7476

2 files changed

Lines changed: 51 additions & 61 deletions

File tree

extensions/ql-vscode/test/vscode-tests/minimal-workspace/queries-panel/query-discovery.test.ts

Lines changed: 37 additions & 51 deletions
Original file line numberDiff line numberDiff line change
@@ -6,10 +6,7 @@ import {
66
workspace,
77
} from "vscode";
88
import { CodeQLCliServer } from "../../../../src/codeql-cli/cli";
9-
import {
10-
QueryDiscovery,
11-
QueryDiscoveryResults,
12-
} from "../../../../src/queries-panel/query-discovery";
9+
import { QueryDiscovery } from "../../../../src/queries-panel/query-discovery";
1310
import { createMockApp } from "../../../__mocks__/appMock";
1411
import { mockedObject } from "../../utils/mocking.helpers";
1512
import { basename, join, sep } from "path";
@@ -28,11 +25,10 @@ describe("QueryDiscovery", () => {
2825
});
2926

3027
const discovery = new QueryDiscovery(createMockApp({}), cli);
31-
const results: QueryDiscoveryResults = await (
32-
discovery as any
33-
).discover();
28+
await discovery.refresh();
29+
const queries = discovery.queries;
3430

35-
expect(results.queries).toEqual([]);
31+
expect(queries).toEqual([]);
3632
expect(resolveQueries).toHaveBeenCalledTimes(1);
3733
});
3834

@@ -49,22 +45,18 @@ describe("QueryDiscovery", () => {
4945
});
5046

5147
const discovery = new QueryDiscovery(createMockApp({}), cli);
52-
const results: QueryDiscoveryResults = await (
53-
discovery as any
54-
).discover();
55-
56-
expect(results.queries[0].children.length).toEqual(3);
57-
expect(results.queries[0].children[0].name).toEqual("dir1");
58-
expect(results.queries[0].children[0].children.length).toEqual(1);
59-
expect(results.queries[0].children[0].children[0].name).toEqual(
60-
"query1.ql",
61-
);
62-
expect(results.queries[0].children[1].name).toEqual("dir2");
63-
expect(results.queries[0].children[1].children.length).toEqual(1);
64-
expect(results.queries[0].children[1].children[0].name).toEqual(
65-
"query2.ql",
66-
);
67-
expect(results.queries[0].children[2].name).toEqual("query3.ql");
48+
await discovery.refresh();
49+
const queries = discovery.queries;
50+
expect(queries).toBeDefined();
51+
52+
expect(queries![0].children.length).toEqual(3);
53+
expect(queries![0].children[0].name).toEqual("dir1");
54+
expect(queries![0].children[0].children.length).toEqual(1);
55+
expect(queries![0].children[0].children[0].name).toEqual("query1.ql");
56+
expect(queries![0].children[1].name).toEqual("dir2");
57+
expect(queries![0].children[1].children.length).toEqual(1);
58+
expect(queries![0].children[1].children[0].name).toEqual("query2.ql");
59+
expect(queries![0].children[2].name).toEqual("query3.ql");
6860
});
6961

7062
it("should collapse directories containing only a single element", async () => {
@@ -79,25 +71,21 @@ describe("QueryDiscovery", () => {
7971
});
8072

8173
const discovery = new QueryDiscovery(createMockApp({}), cli);
82-
const results: QueryDiscoveryResults = await (
83-
discovery as any
84-
).discover();
85-
86-
expect(results.queries[0].children.length).toEqual(1);
87-
expect(results.queries[0].children[0].name).toEqual("dir1");
88-
expect(results.queries[0].children[0].children.length).toEqual(2);
89-
expect(results.queries[0].children[0].children[0].name).toEqual(
74+
await discovery.refresh();
75+
const queries = discovery.queries;
76+
expect(queries).toBeDefined();
77+
78+
expect(queries![0].children.length).toEqual(1);
79+
expect(queries![0].children[0].name).toEqual("dir1");
80+
expect(queries![0].children[0].children.length).toEqual(2);
81+
expect(queries![0].children[0].children[0].name).toEqual(
9082
"dir2 / dir3 / dir3",
9183
);
92-
expect(
93-
results.queries[0].children[0].children[0].children.length,
94-
).toEqual(1);
95-
expect(
96-
results.queries[0].children[0].children[0].children[0].name,
97-
).toEqual("query2.ql");
98-
expect(results.queries[0].children[0].children[1].name).toEqual(
99-
"query1.ql",
84+
expect(queries![0].children[0].children[0].children.length).toEqual(1);
85+
expect(queries![0].children[0].children[0].children[0].name).toEqual(
86+
"query2.ql",
10087
);
88+
expect(queries![0].children[0].children[1].name).toEqual("query1.ql");
10189
});
10290

10391
it("calls resolveQueries once for each workspace folder", async () => {
@@ -128,14 +116,14 @@ describe("QueryDiscovery", () => {
128116
});
129117

130118
const discovery = new QueryDiscovery(createMockApp({}), cli);
131-
const results: QueryDiscoveryResults = await (
132-
discovery as any
133-
).discover();
119+
await discovery.refresh();
120+
const queries = discovery.queries;
121+
expect(queries).toBeDefined();
134122

135-
expect(results.queries.length).toEqual(3);
136-
expect(results.queries[0].children[0].name).toEqual("query1.ql");
137-
expect(results.queries[1].children[0].name).toEqual("query2.ql");
138-
expect(results.queries[2].children[0].name).toEqual("query3.ql");
123+
expect(queries!.length).toEqual(3);
124+
expect(queries![0].children[0].name).toEqual("query1.ql");
125+
expect(queries![1].children[0].name).toEqual("query2.ql");
126+
expect(queries![2].children[0].name).toEqual("query3.ql");
139127

140128
expect(resolveQueries).toHaveBeenCalledTimes(3);
141129
});
@@ -176,8 +164,7 @@ describe("QueryDiscovery", () => {
176164
const onDidChangeQueriesSpy = jest.fn();
177165
discovery.onDidChangeQueries(onDidChangeQueriesSpy);
178166

179-
const results = await (discovery as any).discover();
180-
(discovery as any).update(results);
167+
await discovery.refresh();
181168

182169
expect(createFileSystemWatcherSpy).toHaveBeenCalledTimes(2);
183170
expect(onDidChangeQueriesSpy).toHaveBeenCalledTimes(1);
@@ -209,8 +196,7 @@ describe("QueryDiscovery", () => {
209196
const onDidChangeQueriesSpy = jest.fn();
210197
discovery.onDidChangeQueries(onDidChangeQueriesSpy);
211198

212-
const results = await (discovery as any).discover();
213-
(discovery as any).update(results);
199+
await discovery.refresh();
214200

215201
expect(onDidChangeQueriesSpy).toHaveBeenCalledTimes(1);
216202

extensions/ql-vscode/test/vscode-tests/minimal-workspace/query-testing/qltest-discovery.test.ts

Lines changed: 14 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -52,12 +52,14 @@ describe("qltest-discovery", () => {
5252
});
5353

5454
it("should run discovery", async () => {
55-
const result = await (qlTestDiscover as any).discover();
56-
expect(result.watchPath).toEqualPath(baseDir);
57-
expect(result.testDirectory.path).toEqualPath(baseDir);
58-
expect(result.testDirectory.name).toBe("My tests");
55+
await qlTestDiscover.refresh();
56+
const testDirectory = qlTestDiscover.testDirectory;
57+
expect(testDirectory).toBeDefined();
5958

60-
let children = result.testDirectory.children;
59+
expect(testDirectory!.path).toEqualPath(baseDir);
60+
expect(testDirectory!.name).toBe("My tests");
61+
62+
let children = testDirectory!.children;
6163
expect(children.length).toBe(1);
6264

6365
expect(children[0].path).toEqualPath(cDir);
@@ -83,12 +85,14 @@ describe("qltest-discovery", () => {
8385
it("should avoid discovery if a folder does not exist", async () => {
8486
await fs.remove(baseDir);
8587

86-
const result = await (qlTestDiscover as any).discover();
87-
expect(result.watchPath).toEqualPath(baseDir);
88-
expect(result.testDirectory.path).toEqualPath(baseDir);
89-
expect(result.testDirectory.name).toBe("My tests");
88+
await qlTestDiscover.refresh();
89+
const testDirectory = qlTestDiscover.testDirectory;
90+
expect(testDirectory).toBeDefined();
91+
92+
expect(testDirectory!.path).toEqualPath(baseDir);
93+
expect(testDirectory!.name).toBe("My tests");
9094

91-
expect(result.testDirectory.children.length).toBe(0);
95+
expect(testDirectory!.children.length).toBe(0);
9296
});
9397
});
9498
});

0 commit comments

Comments
 (0)