From b9a3368867a14fbacaf3e804bd12d3fcb8852e72 Mon Sep 17 00:00:00 2001 From: Vladimir Sheremet Date: Sat, 12 Oct 2024 13:41:05 +0200 Subject: [PATCH] fix: reset the watcher when "resfresh tests" is triggered --- src/testTree.ts | 3 ++- src/watcher.ts | 12 +++++++++--- 2 files changed, 11 insertions(+), 4 deletions(-) diff --git a/src/testTree.ts b/src/testTree.ts index de865ed..70055b3 100644 --- a/src/testTree.ts +++ b/src/testTree.ts @@ -33,6 +33,7 @@ export class TestTree extends vscode.Disposable { this.fileItems.clear() this.flatTestItems.clear() this.testItemsByFile.clear() + this.watcher.dispose() }) this.watcher = new ExtensionWatcher(this) } @@ -50,7 +51,7 @@ export class TestTree extends vscode.Disposable { this.testItemsByFile.clear() this.fileItems.clear() this.flatTestItems.clear() - this.watcher.dispose() + this.watcher.reset() this.loaderItem.busy = true diff --git a/src/watcher.ts b/src/watcher.ts index 2b733c2..1722a3d 100644 --- a/src/watcher.ts +++ b/src/watcher.ts @@ -11,14 +11,20 @@ export class ExtensionWatcher extends vscode.Disposable { constructor(private readonly testTree: TestTree) { super(() => { - this.watcherByFolder.forEach(x => x.dispose()) - this.watcherByFolder.clear() + this.reset() + log.verbose?.('[VSCODE] Watcher disposed') }) } + reset() { + this.watcherByFolder.forEach(x => x.dispose()) + this.watcherByFolder.clear() + } + watchTestFilesInWorkspace(api: VitestFolderAPI) { - if (this.watcherByFolder.has(api.workspaceFolder)) + if (this.watcherByFolder.has(api.workspaceFolder)) { return + } const pattern = getConfig(api.workspaceFolder).filesWatcherInclude log.info('[VSCODE] Watching', api.workspaceFolder.name, 'with pattern', pattern) -- 2.51.2