Add getCurrentRefreshPromise

This commit is contained in:
Robert
2023-05-25 17:40:32 +01:00
parent 9dd7476c90
commit 1f4b19cd37
2 changed files with 10 additions and 5 deletions

View File

@@ -15,6 +15,14 @@ export abstract class Discovery<T> extends DisposableObject {
super();
}
/**
* Returns the promise of the currently running refresh operation, if one is in progress.
* Otherwise returns a promise that resolves immediately.
*/
public getCurrentRefreshPromise(): Promise<void> {
return this.currentDiscoveryPromise ?? Promise.resolve();
}
/**
* Force the discovery process to run. Normally invoked by the derived class when a relevant file
* system change is detected.

View File

@@ -10,7 +10,6 @@ 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";
import { sleep } from "../../../../src/pure/time";
describe("QueryDiscovery", () => {
beforeEach(() => {
@@ -171,8 +170,7 @@ describe("QueryDiscovery", () => {
onWatcherDidChangeEvent.fire(workspace.workspaceFolders![0].uri);
// Wait for refresh to finish
await sleep(100);
await discovery.getCurrentRefreshPromise();
expect(onDidChangeQueriesSpy).toHaveBeenCalledTimes(2);
});
@@ -202,8 +200,7 @@ describe("QueryDiscovery", () => {
onDidChangeWorkspaceFoldersEvent.fire({ added: [], removed: [] });
// Wait for refresh to finish
await sleep(100);
await discovery.getCurrentRefreshPromise();
expect(onDidChangeQueriesSpy).toHaveBeenCalledTimes(2);
});