jest-fs-snapshot
v0.3.0
Published
Jest matcher for filesystem snapshotting.
Downloads
11,205
Maintainers
Readme
jest-fs-snapshot ·
![Build Status](https://florianrappl.visualstudio.com/piral-cli-plugins/_apis/build/status/FlorianRappl.jest-fs-snapshot?branchName=master)
Jest matcher for filesystem snapshotting.
Table of Contents
Installation
yarn add jest-fs-snapshot
Getting Started
- Extend Jest's
expect
import { toMatchFilesystemSnapshot } from 'jest-fs-snapshot';
expect.extend({ toMatchFilesystemSnapshot });
- Use it in your tests!
test('if build directory matches snapshot', () => {
const pathToBuildDir = path.resolve(process.cwd(), '.build');
expect(pathToBuildDir).toMatchFilesystemSnapshot();
});
This will create a __fs_snapshots__
folder next to your test file with a snapshot file. On next runs it will chech if
the snapshot against the source directory and with throw on mismatches.
API
.toMatchFilesystemSnapshot([pathToSnapshot, options])
Arguments
pathToSnapshot
(String): An optional full path to a snapshot file.options
(Object): An optional object with additional configurations.customCompare
({check: Function, compare: Function}[]): Any custom compare function will be applied only if the check method returns true. If multiple checks return true, the first hit will be used.
Example
const diff = require('jest-diff');
const snapshotOptions = {
customCompare: [
{
check: path => path.endsWith('package.json'),
compare: (actualBuffer, expectedBuffer) => {
const actual = JSON.parse(actualBuffer);
const expected = JSON.parse(expectedBuffer);
// we want to ignore the peerModules
delete actual.peerModules;
delete expected.peerModules;
return diff(actual, expected);
},
},
{
// test.js files will be ignored
check: path => path.endsWith('.test.js'),
compare: () => true,
},
],
};
describe('...', () => {
it('...', () => {
/**
* ...
*/
expect(pathToBuildDir).toMatchFilesystemSnapshot(undefined, snapshotOptions);
});
});
Credits
Many files for encodings
fixture have been taken from https://github.com/mbbill/fencview.
License
This package is released using the MIT license. For more information see the license file.