jest-fs-snapshot

0.3.0 • Public • Published

jest-fs-snapshot · npm Build Status

Jest matcher for filesystem snapshotting.

Table of Contents

Installation

yarn add jest-fs-snapshot

Getting Started

  1. Extend Jest's expect
import { toMatchFilesystemSnapshot } from 'jest-fs-snapshot';

expect.extend({ toMatchFilesystemSnapshot });
  1. 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

  1. pathToSnapshot (String): An optional full path to a snapshot file.
  2. options (Object): An optional object with additional configurations.
    1. 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.

Dependencies (6)

Dev Dependencies (20)

Package Sidebar

Install

npm i jest-fs-snapshot

Weekly Downloads

2,992

Version

0.3.0

License

MIT

Unpacked Size

51.6 kB

Total Files

10

Last publish

Collaborators

  • florianrappl