From 515462bfa9b31f3ea85145e2d296d227eafa5a9c Mon Sep 17 00:00:00 2001 From: Vladimir Sheremet Date: Mon, 30 May 2022 21:31:41 +0300 Subject: [PATCH 1/2] fix: don't replace $ in snapshots, when not needed --- .../src/integrations/snapshot/port/inlineSnapshot.ts | 3 +-- test/core/test/snapshot-inline.test.ts | 10 ++++++++++ 2 files changed, 11 insertions(+), 2 deletions(-) diff --git a/packages/vitest/src/integrations/snapshot/port/inlineSnapshot.ts b/packages/vitest/src/integrations/snapshot/port/inlineSnapshot.ts index 66fe3192b86b..b9bcdb2b3c0d 100644 --- a/packages/vitest/src/integrations/snapshot/port/inlineSnapshot.ts +++ b/packages/vitest/src/integrations/snapshot/port/inlineSnapshot.ts @@ -61,7 +61,6 @@ function prepareSnapString(snap: string, source: string, index: number) { const lines = snap .trim() .replace(/\\/g, '\\\\') - .replace(/\$/g, '\\$') .split(/\n/g) const isOneline = lines.length <= 1 @@ -69,7 +68,7 @@ function prepareSnapString(snap: string, source: string, index: number) { if (isOneline) return `'${lines.join('\n').replace(/'/g, '\\\'')}'` else - return `${quote}\n${lines.map(i => i ? indentNext + i : '').join('\n').replace(/`/g, '\\`')}\n${indent}${quote}` + return `${quote}\n${lines.map(i => i ? indentNext + i : '').join('\n').replace(/`/g, '\\`').replace(/\${/g, '\\${')}\n${indent}${quote}` } const startRegex = /(?:toMatchInlineSnapshot|toThrowErrorMatchingInlineSnapshot)\s*\(\s*[\w_$]*(['"`\)])/m diff --git a/test/core/test/snapshot-inline.test.ts b/test/core/test/snapshot-inline.test.ts index 4ce0aac94be6..93c982d57acf 100644 --- a/test/core/test/snapshot-inline.test.ts +++ b/test/core/test/snapshot-inline.test.ts @@ -19,6 +19,16 @@ test('object', () => { test('single line', () => { expect('inline string').toMatchInlineSnapshot('"inline string"') + expect('inline $ string').toMatchInlineSnapshot('"inline $ string"') + expect('inline multiline\n $string').toMatchInlineSnapshot(` + "inline multiline + $string" + `) + // eslint-disable-next-line no-template-curly-in-string + expect('inline multiline\n \${string}').toMatchInlineSnapshot(` + "inline multiline + \${string}" + `) }) test('multiline', () => { From e636118d2ae2680b38a3d60d15e3938ff5aedb32 Mon Sep 17 00:00:00 2001 From: Vladimir Sheremet Date: Mon, 30 May 2022 21:32:38 +0300 Subject: [PATCH 2/2] test: remove \ in test --- test/core/test/snapshot-inline.test.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/test/core/test/snapshot-inline.test.ts b/test/core/test/snapshot-inline.test.ts index 93c982d57acf..fda2031e98a2 100644 --- a/test/core/test/snapshot-inline.test.ts +++ b/test/core/test/snapshot-inline.test.ts @@ -25,7 +25,7 @@ test('single line', () => { $string" `) // eslint-disable-next-line no-template-curly-in-string - expect('inline multiline\n \${string}').toMatchInlineSnapshot(` + expect('inline multiline\n ${string}').toMatchInlineSnapshot(` "inline multiline \${string}" `)