@researchgate/jest-file-snapshot

Jest matcher to write snapshots to a separate file instead of the default snapshot file used by Jest. Writing a snapshot to a separate file means you have proper syntax highlighting in the output file, and better readability without those pesky escape characters.

Usage no npm install needed!

<script type="module">
  import researchgateJestFileSnapshot from 'https://cdn.skypack.dev/@researchgate/jest-file-snapshot';
</script>

README

jest-file-snapshot

Jest matcher to write snapshots to a separate file instead of the default snapshot file used by Jest. Writing a snapshot to a separate file means you have proper syntax highlighting in the output file, and better readability without those pesky escape characters.

Installation

npm install --save-dev jest-file-snapshot

or

yarn add --dev jest-file-snapshot

Usage

Extend Jest's expect:

import { toMatchFile } from 'jest-file-snapshot';

expect.extend({ toMatchFile });

Then use it in your tests:

it('matches content of file on disk', () => {
  expect(content).toMatchFile();
});

The content passed can be of type String or a Buffer. Only if the Buffer is holding binary data, will the comparison be done using Buffer.equals() instead of ===.

The matcher takes two optional arguments:

  • filepath: path to the file whose content should be matched, e.g. expect(content).toMatchFile(path.join(__dirname, 'output.md'))
  • options: additional options object for the matcher, with following properties:

You should also exclude the output files from Jest's watcher so that updating the snapshot doesn't re-run the tests again.

For example, by default toMatchFile uses a folder named __file_snapshots__ which you can exclude by adding the following under the jest key in package.json:

"watchPathIgnorePatterns": [
  "__file_snapshots__"
]

Credits