Skip to content

Commit 1f4b19c

Browse files
Add getCurrentRefreshPromise
1 parent 9dd7476 commit 1f4b19c

2 files changed

Lines changed: 10 additions & 5 deletions

File tree

extensions/ql-vscode/src/common/discovery.ts

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,14 @@ export abstract class Discovery<T> extends DisposableObject {
1515
super();
1616
}
1717

18+
/**
19+
* Returns the promise of the currently running refresh operation, if one is in progress.
20+
* Otherwise returns a promise that resolves immediately.
21+
*/
22+
public getCurrentRefreshPromise(): Promise<void> {
23+
return this.currentDiscoveryPromise ?? Promise.resolve();
24+
}
25+
1826
/**
1927
* Force the discovery process to run. Normally invoked by the derived class when a relevant file
2028
* system change is detected.

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

Lines changed: 2 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,6 @@ import { QueryDiscovery } from "../../../../src/queries-panel/query-discovery";
1010
import { createMockApp } from "../../../__mocks__/appMock";
1111
import { mockedObject } from "../../utils/mocking.helpers";
1212
import { basename, join, sep } from "path";
13-
import { sleep } from "../../../../src/pure/time";
1413

1514
describe("QueryDiscovery", () => {
1615
beforeEach(() => {
@@ -171,8 +170,7 @@ describe("QueryDiscovery", () => {
171170

172171
onWatcherDidChangeEvent.fire(workspace.workspaceFolders![0].uri);
173172

174-
// Wait for refresh to finish
175-
await sleep(100);
173+
await discovery.getCurrentRefreshPromise();
176174

177175
expect(onDidChangeQueriesSpy).toHaveBeenCalledTimes(2);
178176
});
@@ -202,8 +200,7 @@ describe("QueryDiscovery", () => {
202200

203201
onDidChangeWorkspaceFoldersEvent.fire({ added: [], removed: [] });
204202

205-
// Wait for refresh to finish
206-
await sleep(100);
203+
await discovery.getCurrentRefreshPromise();
207204

208205
expect(onDidChangeQueriesSpy).toHaveBeenCalledTimes(2);
209206
});

0 commit comments

Comments
 (0)