From 180b9776fb5db9cd5b0057792bc7a18dfbc77d22 Mon Sep 17 00:00:00 2001 From: Vladimir Sheremet Date: Thu, 22 Jan 2026 18:17:45 +0100 Subject: [PATCH 1/2] fix(browser): hide injected data-testid attributes --- packages/pretty-format/src/plugins/lib/markup.ts | 4 ++++ test/browser/test/snapshot.test.ts | 8 ++++++++ 2 files changed, 12 insertions(+) diff --git a/packages/pretty-format/src/plugins/lib/markup.ts b/packages/pretty-format/src/plugins/lib/markup.ts index 5e34fd17853f..b128b2d44669 100644 --- a/packages/pretty-format/src/plugins/lib/markup.ts +++ b/packages/pretty-format/src/plugins/lib/markup.ts @@ -23,6 +23,10 @@ export function printProps( return keys .map((key) => { const value = props[key] + if (typeof value === 'string' && value.startsWith('__vitest_') && value.match(/__vitest_\d+__/)) { + return '' + } + let printed = printer(value, config, indentationNext, depth, refs) if (typeof value !== 'string') { diff --git a/test/browser/test/snapshot.test.ts b/test/browser/test/snapshot.test.ts index 8098a578776a..8060f4cf5e47 100644 --- a/test/browser/test/snapshot.test.ts +++ b/test/browser/test/snapshot.test.ts @@ -12,3 +12,11 @@ test('file snapshot', async () => { await expect('my snapshot content') .toMatchFileSnapshot('./__snapshots__/custom/my_snapshot') }) + +test('vitest attribute is hidden', () => { + const div = document.createElement('div') + div.setAttribute('data-testid', '__vitest_1__') + expect(div).toMatchInlineSnapshot(` +
+ `) +}) From 879f7f4a8880815092a9630ec3d55c5ce5850e20 Mon Sep 17 00:00:00 2001 From: Vladimir Sheremet Date: Thu, 22 Jan 2026 18:20:38 +0100 Subject: [PATCH 2/2] perf: check for _ --- packages/pretty-format/src/plugins/lib/markup.ts | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/packages/pretty-format/src/plugins/lib/markup.ts b/packages/pretty-format/src/plugins/lib/markup.ts index b128b2d44669..891fb75ee393 100644 --- a/packages/pretty-format/src/plugins/lib/markup.ts +++ b/packages/pretty-format/src/plugins/lib/markup.ts @@ -23,7 +23,13 @@ export function printProps( return keys .map((key) => { const value = props[key] - if (typeof value === 'string' && value.startsWith('__vitest_') && value.match(/__vitest_\d+__/)) { + // hidden injected value that should not be printed + if ( + typeof value === 'string' + && value[0] === '_' + && value.startsWith('__vitest_') + && value.match(/__vitest_\d+__/) + ) { return '' }