diff --git a/packages/coverage-v8/src/index.ts b/packages/coverage-v8/src/index.ts index 962e18e63..f37440da8 100644 --- a/packages/coverage-v8/src/index.ts +++ b/packages/coverage-v8/src/index.ts @@ -31,7 +31,7 @@ const mod: CoverageProviderModule & { enabled = true if (autoAttachSubprocess) { - this.extendedContextCoverageDir = resolve(reportsDirectory, 'tmp', randomUUID()) + this.extendedContextCoverageDir = resolve(reportsDirectory, '.tmp', randomUUID()) process.env.NODE_V8_COVERAGE = this.extendedContextCoverageDir } diff --git a/test/coverage-test/test/temporary-files.test.ts b/test/coverage-test/test/temporary-files.test.ts index b2264458e..fd527b2b2 100644 --- a/test/coverage-test/test/temporary-files.test.ts +++ b/test/coverage-test/test/temporary-files.test.ts @@ -1,7 +1,7 @@ import { readdirSync } from 'node:fs' import { resolve } from 'node:path' import { expect } from 'vitest' -import { runVitest, test } from '../utils' +import { isBrowser, isV8Provider, runVitest, test } from '../utils' test('temporary files are removed after test', async () => { await runVitest({ @@ -12,9 +12,31 @@ test('temporary files are removed after test', async () => { const coveragePath = resolve('./coverage') const files = readdirSync(coveragePath) - expect(files).not.toContain('.tmp') + expect.soft(files).not.toContain('.tmp') - expect(files).toMatchInlineSnapshot(` + expect.soft(files).toMatchInlineSnapshot(` + [ + "coverage-final.json", + ] + `) +}) + +test('temporary files from autoAttachSubprocess are removed after test', async ({ skip }) => { + skip(!isV8Provider() || isBrowser(), 'V8 + node only feature') + + await runVitest({ + include: ['fixtures/test/child-process.test.ts'], + pool: 'forks', + coverage: { reporter: 'json', autoAttachSubprocess: true }, + }) + + const coveragePath = resolve('./coverage') + const files = readdirSync(coveragePath) + + expect.soft(files).not.toContain('.tmp') + expect.soft(files).not.toContain('tmp') + + expect.soft(files).toMatchInlineSnapshot(` [ "coverage-final.json", ]