Use refresh promise in tests
This commit is contained in:
@@ -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);
|
||||
|
||||
|
||||
@@ -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);
|
||||
});
|
||||
});
|
||||
});
|
||||
|
||||
Reference in New Issue
Block a user