From c5e2e7530dee74e9391e357a28070e7720fb323b Mon Sep 17 00:00:00 2001 From: Hiroshi Ogawa Date: Thu, 14 May 2026 19:24:41 +0900 Subject: [PATCH] fix(reporters): fix blob file name with label (#10346) --- packages/vitest/src/node/reporters/blob.ts | 4 ++-- test/e2e/test/reporters/merge-reports.test.ts | 11 +++++++++-- 2 files changed, 11 insertions(+), 4 deletions(-) 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