diff --git a/packages/vitest/src/node/specifications.ts b/packages/vitest/src/node/specifications.ts index c8b1f9540360..588ad3c73217 100644 --- a/packages/vitest/src/node/specifications.ts +++ b/packages/vitest/src/node/specifications.ts @@ -135,7 +135,7 @@ export class VitestSpecifications { } const forceRerunTriggers = this.vitest.config.forceRerunTriggers - const matcher = forceRerunTriggers.length ? pm(forceRerunTriggers) : undefined + const matcher = forceRerunTriggers.length ? pm(forceRerunTriggers, { dot: true }) : undefined if (matcher && related.some(file => matcher(file))) { return specs } diff --git a/packages/vitest/src/node/watcher.ts b/packages/vitest/src/node/watcher.ts index 7aa99c376b28..41c2dd82dd92 100644 --- a/packages/vitest/src/node/watcher.ts +++ b/packages/vitest/src/node/watcher.ts @@ -173,7 +173,7 @@ export class VitestWatcher { return false } - if (pm.isMatch(filepath, this.vitest.config.forceRerunTriggers)) { + if (pm.isMatch(filepath, this.vitest.config.forceRerunTriggers, { dot: true })) { this.vitest.state.getFilepaths().forEach(file => this.changedTests.add(file)) return true } diff --git a/test/e2e/test/git-changed.test.ts b/test/e2e/test/git-changed.test.ts index b3ef510df88e..4db29ecf2e13 100644 --- a/test/e2e/test/git-changed.test.ts +++ b/test/e2e/test/git-changed.test.ts @@ -28,6 +28,21 @@ describe.skipIf(process.env.ECOSYSTEM_CI)('forceRerunTrigger', () => { expect(stdout).not.toContain('not-related.test.ts') }) + it('should run the whole test suite if file exists in dot-directory trigger', async () => { + const dotFileName = 'fixtures/git-changed/related/.temp/rerun.temp' + createFile(dotFileName, '') + const { stdout, stderr } = await runVitest({ + root: join(process.cwd(), 'fixtures/git-changed/related'), + include: ['related.test.ts'], + forceRerunTriggers: ['**/.temp/**'], + changed: true, + }) + expect(stderr).toBe('') + expect(stdout).toContain('1 passed') + expect(stdout).toContain('related.test.ts') + expect(stdout).not.toContain('not-related.test.ts') + }) + it('should run no tests if file does not exist', async () => { const { stdout } = await run() expect(stdout).toContain('No test files found, exiting with code 0')