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. It's also useful if you have binary content.
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
. The comparison be done using Buffer.equals()
instead of ===
if a Buffer
is passed.
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:
diff
: options for jest-diff
fileExtension
: optional file extension to use for the snapshot file.
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
Contributing
Make sure your code passes the unit tests, ESLint and TypeScript. Run the following to verify:
yarn test
yarn lint
yarn typescript
To fix formatting errors, run the following:
yarn lint -- --fix