From 1c65ac4866023fd8229fe1122d62a1447b03146f Mon Sep 17 00:00:00 2001 From: AriPerkkio Date: Thu, 26 Jan 2023 11:55:00 +0200 Subject: [PATCH] fix: watch mode's filename pattern to persist re-run of failed tests, snapshot updates and testname filter changes --- packages/vitest/src/node/core.ts | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/packages/vitest/src/node/core.ts b/packages/vitest/src/node/core.ts index 0866786c89f3..d00af5841a1b 100644 --- a/packages/vitest/src/node/core.ts +++ b/packages/vitest/src/node/core.ts @@ -360,6 +360,11 @@ export class Vitest { } async rerunFiles(files: string[] = this.state.getFilepaths(), trigger?: string) { + if (this.filenamePattern) { + const filteredFiles = await this.globTestFiles([this.filenamePattern]) + files = files.filter(file => filteredFiles.includes(file)) + } + if (this.coverageProvider && this.config.coverage.cleanOnRerun) await this.coverageProvider.clean() @@ -385,10 +390,9 @@ export class Vitest { this.filenamePattern = pattern const files = this.state.getFilepaths() - if (!this.filenamePattern) - return await this.rerunFiles(files, 'reset filename pattern') - const filteredFiles = await this.globTestFiles([this.filenamePattern]) - await this.rerunFiles(filteredFiles, 'change filename pattern') + const trigger = this.filenamePattern ? 'change filename pattern' : 'reset filename pattern' + + await this.rerunFiles(files, trigger) } async rerunFailed() {