diff --git a/packages/vitest/src/node/reporters/blob.ts b/packages/vitest/src/node/reporters/blob.ts index f1370f66a..3aae94e93 100644 --- a/packages/vitest/src/node/reporters/blob.ts +++ b/packages/vitest/src/node/reporters/blob.ts @@ -103,8 +103,8 @@ export class BlobReporter implements Reporter { outputFile = [ 'blob', this.ctx.config.mergeReportsLabel, - shard ? `-${shard.index}-${shard.count}` : '', - ].join('') + shard ? `${shard.index}-${shard.count}` : '', + ].filter(Boolean).join('-') outputFile = `${sanitizeFilePath(outputFile)}.json` diff --git a/test/e2e/test/reporters/merge-reports.test.ts b/test/e2e/test/reporters/merge-reports.test.ts index 18a6907c0..36a29856b 100644 --- a/test/e2e/test/reporters/merge-reports.test.ts +++ b/test/e2e/test/reporters/merge-reports.test.ts @@ -2,7 +2,7 @@ import type { RunVitestConfig } from '#test-utils' import type { File, Test } from '@vitest/runner/types' import type { TestUserConfig, Vitest } from 'vitest/node' import type { MergeReport } from 'vitest/src/node/reporters/blob.js' -import { existsSync, rmSync } from 'node:fs' +import { existsSync, readdirSync, rmSync } from 'node:fs' import { mkdir, writeFile } from 'node:fs/promises' import { buildTestTree, runVitest, useFS } from '#test-utils' import { playwright } from '@vitest/browser-playwright' @@ -652,10 +652,17 @@ test("macos only", () => {}) }, } `) + const blobDir = resolve(root, '.vitest/blob') const result = await runVitest({ root, - mergeReports: resolve(root, '.vitest/blob'), + mergeReports: blobDir, }) + expect(readdirSync(blobDir)).toMatchInlineSnapshot(` + [ + "blob-linux.json", + "blob-macos.json", + ] + `) expect(trimReporterOutput(result.stdout)).toMatchInlineSnapshot(` "✓ linux first.test.ts > always good