Use refresh promise in tests

This commit is contained in:
Robert
2023-05-25 17:39:22 +01:00
parent 5405b1bf29
commit 9dd7476c90
2 changed files with 49 additions and 59 deletions

View File

@@ -6,10 +6,7 @@ import {
workspace,
} from "vscode";
import { CodeQLCliServer } from "../../../../src/codeql-cli/cli";
import {
QueryDiscovery,
QueryDiscoveryResults,
} from "../../../../src/queries-panel/query-discovery";
import { QueryDiscovery } from "../../../../src/queries-panel/query-discovery";
import { createMockApp } from "../../../__mocks__/appMock";
import { mockedObject } from "../../utils/mocking.helpers";
import { basename, join, sep } from "path";
@@ -28,11 +25,10 @@ describe("QueryDiscovery", () => {
});
const discovery = new QueryDiscovery(createMockApp({}), cli);
const results: QueryDiscoveryResults = await (
discovery as any
).discover();
await discovery.refresh();
const queries = discovery.queries;
expect(results.queries).toEqual([]);
expect(queries).toEqual([]);
expect(resolveQueries).toHaveBeenCalledTimes(1);
});
@@ -49,22 +45,18 @@ describe("QueryDiscovery", () => {
});
const discovery = new QueryDiscovery(createMockApp({}), cli);
const results: QueryDiscoveryResults = await (
discovery as any
).discover();
await discovery.refresh();
const queries = discovery.queries;
expect(queries).toBeDefined();
expect(results.queries[0].children.length).toEqual(3);
expect(results.queries[0].children[0].name).toEqual("dir1");
expect(results.queries[0].children[0].children.length).toEqual(1);
expect(results.queries[0].children[0].children[0].name).toEqual(
"query1.ql",
);
expect(results.queries[0].children[1].name).toEqual("dir2");
expect(results.queries[0].children[1].children.length).toEqual(1);
expect(results.queries[0].children[1].children[0].name).toEqual(
"query2.ql",
);
expect(results.queries[0].children[2].name).toEqual("query3.ql");
expect(queries![0].children.length).toEqual(3);
expect(queries![0].children[0].name).toEqual("dir1");
expect(queries![0].children[0].children.length).toEqual(1);
expect(queries![0].children[0].children[0].name).toEqual("query1.ql");
expect(queries![0].children[1].name).toEqual("dir2");
expect(queries![0].children[1].children.length).toEqual(1);
expect(queries![0].children[1].children[0].name).toEqual("query2.ql");
expect(queries![0].children[2].name).toEqual("query3.ql");
});
it("should collapse directories containing only a single element", async () => {
@@ -79,25 +71,21 @@ describe("QueryDiscovery", () => {
});
const discovery = new QueryDiscovery(createMockApp({}), cli);
const results: QueryDiscoveryResults = await (
discovery as any
).discover();
await discovery.refresh();
const queries = discovery.queries;
expect(queries).toBeDefined();
expect(results.queries[0].children.length).toEqual(1);
expect(results.queries[0].children[0].name).toEqual("dir1");
expect(results.queries[0].children[0].children.length).toEqual(2);
expect(results.queries[0].children[0].children[0].name).toEqual(
expect(queries![0].children.length).toEqual(1);
expect(queries![0].children[0].name).toEqual("dir1");
expect(queries![0].children[0].children.length).toEqual(2);
expect(queries![0].children[0].children[0].name).toEqual(
"dir2 / dir3 / dir3",
);
expect(
results.queries[0].children[0].children[0].children.length,
).toEqual(1);
expect(
results.queries[0].children[0].children[0].children[0].name,
).toEqual("query2.ql");
expect(results.queries[0].children[0].children[1].name).toEqual(
"query1.ql",
expect(queries![0].children[0].children[0].children.length).toEqual(1);
expect(queries![0].children[0].children[0].children[0].name).toEqual(
"query2.ql",
);
expect(queries![0].children[0].children[1].name).toEqual("query1.ql");
});
it("calls resolveQueries once for each workspace folder", async () => {
@@ -128,14 +116,14 @@ describe("QueryDiscovery", () => {
});
const discovery = new QueryDiscovery(createMockApp({}), cli);
const results: QueryDiscoveryResults = await (
discovery as any
).discover();
await discovery.refresh();
const queries = discovery.queries;
expect(queries).toBeDefined();
expect(results.queries.length).toEqual(3);
expect(results.queries[0].children[0].name).toEqual("query1.ql");
expect(results.queries[1].children[0].name).toEqual("query2.ql");
expect(results.queries[2].children[0].name).toEqual("query3.ql");
expect(queries!.length).toEqual(3);
expect(queries![0].children[0].name).toEqual("query1.ql");
expect(queries![1].children[0].name).toEqual("query2.ql");
expect(queries![2].children[0].name).toEqual("query3.ql");
expect(resolveQueries).toHaveBeenCalledTimes(3);
});
@@ -176,8 +164,7 @@ describe("QueryDiscovery", () => {
const onDidChangeQueriesSpy = jest.fn();
discovery.onDidChangeQueries(onDidChangeQueriesSpy);
const results = await (discovery as any).discover();
(discovery as any).update(results);
await discovery.refresh();
expect(createFileSystemWatcherSpy).toHaveBeenCalledTimes(2);
expect(onDidChangeQueriesSpy).toHaveBeenCalledTimes(1);
@@ -209,8 +196,7 @@ describe("QueryDiscovery", () => {
const onDidChangeQueriesSpy = jest.fn();
discovery.onDidChangeQueries(onDidChangeQueriesSpy);
const results = await (discovery as any).discover();
(discovery as any).update(results);
await discovery.refresh();
expect(onDidChangeQueriesSpy).toHaveBeenCalledTimes(1);

View File

@@ -52,12 +52,14 @@ describe("qltest-discovery", () => {
});
it("should run discovery", async () => {
const result = await (qlTestDiscover as any).discover();
expect(result.watchPath).toEqualPath(baseDir);
expect(result.testDirectory.path).toEqualPath(baseDir);
expect(result.testDirectory.name).toBe("My tests");
await qlTestDiscover.refresh();
const testDirectory = qlTestDiscover.testDirectory;
expect(testDirectory).toBeDefined();
let children = result.testDirectory.children;
expect(testDirectory!.path).toEqualPath(baseDir);
expect(testDirectory!.name).toBe("My tests");
let children = testDirectory!.children;
expect(children.length).toBe(1);
expect(children[0].path).toEqualPath(cDir);
@@ -83,12 +85,14 @@ describe("qltest-discovery", () => {
it("should avoid discovery if a folder does not exist", async () => {
await fs.remove(baseDir);
const result = await (qlTestDiscover as any).discover();
expect(result.watchPath).toEqualPath(baseDir);
expect(result.testDirectory.path).toEqualPath(baseDir);
expect(result.testDirectory.name).toBe("My tests");
await qlTestDiscover.refresh();
const testDirectory = qlTestDiscover.testDirectory;
expect(testDirectory).toBeDefined();
expect(result.testDirectory.children.length).toBe(0);
expect(testDirectory!.path).toEqualPath(baseDir);
expect(testDirectory!.name).toBe("My tests");
expect(testDirectory!.children.length).toBe(0);
});
});
});