Skip to content

Snapshots are rendered with an extra " causing all other quotes to be esaped #856

Description

@LanFeusT23

Describe the bug

Rendered snapshots have a double quote " added immediately after the first ` (or ' for inline snapshots, which feels wrong too?).

This occurs with no UI framework at all, as well as with Vue 3, using composition API and script setup. I haven't tested other frameworks but since it happens without an it probably happens with all of them.

This causes all snapshots to be escaped with \\ everywhere making them much harder to read and compare.

Reproduced here: https://stackblitz.com/edit/vitejs-vite-pdqfzn

Reproduction

  1. Install vite npm create vite@latest
  2. Add a test that will render snapshots:
import { test, it, describe, expect } from 'vitest';

describe('App', () => {
  it('should render the html inline', () => {
    expect(`<div class="test">Hello World</div>`).toMatchInlineSnapshot(
      '"<div class=\\"test\\">Hello World</div>"'
    );
  });

  it('should render the html in a snapshot file', () => {
    expect(`<div class="test">Hello World</div>`).toMatchSnapshot();
  });
});

=> snapshots are rended with \\ everywhere to escape quotes.

System Info

System:
    OS: Linux 5.4 Amazon Linux 2
    CPU: (16) x64 Intel(R) Xeon(R) CPU E5-2686 v4 @ 2.30GHz
    Memory: 18.33 GB / 62.79 GB
    Container: Yes
    Shell: 5.7.1 - /bin/zsh
  Binaries:
    Node: 14.18.1 - ~/.nvm/versions/node/v14.18.1/bin/node
    npm: 6.14.15 - ~/.nvm/versions/node/v14.18.1/bin/npm
  Browsers:
    Firefox: support!
Mozilla Firefox 78.11.0esr
  npmPackages:
    @vitejs/plugin-vue: ^2.1.0 => 2.1.0 
    vite: ^2.7.13 => 2.7.13 
    vitest: ^0.5.3 => 0.5.3

Used Package Manager

npm

Validations

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Type

    No type

    Fields

    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions