diff --git a/code/addons/vitest/src/node/vitest-manager.ts b/code/addons/vitest/src/node/vitest-manager.ts index 30ffa3e57320..3ad32b8417ac 100644 --- a/code/addons/vitest/src/node/vitest-manager.ts +++ b/code/addons/vitest/src/node/vitest-manager.ts @@ -53,7 +53,7 @@ export class VitestManager { constructor(private testManager: TestManager) {} - async startVitest({ coverage = false } = {}) { + async startVitest({ coverage }: { coverage: boolean }) { const { createVitest } = await import('vitest/node'); const storybookCoverageReporter: [string, StorybookCoverageReporterOptions] = [ @@ -206,7 +206,6 @@ export class VitestManager { if (!this.vitest) { await this.startVitest({ coverage: coverageShouldBeEnabled }); } else if (currentCoverage !== coverageShouldBeEnabled) { - await this.vitestRestartPromise; await this.restartVitest({ coverage: coverageShouldBeEnabled }); } else { await this.vitestRestartPromise; @@ -391,8 +390,8 @@ export class VitestManager { const isConfig = file === this.vitest?.vite?.config.configFile; if (isConfig) { log('Restarting Vitest due to config change'); - await this.closeVitest(); - await this.startVitest(); + const { watching, config } = this.testManager.store.getState(); + await this.restartVitest({ coverage: config.coverage && !watching }); } }); }