Skip to content

brentmclark/jest-specific-snapshot

 
 

Repository files navigation

Jest Specific Snapshot

Jest matcher for multiple snapshot files per test

Installation

npm i -D jest-specific-snapshot 

Example

const path = require('path');
// extend jest to have 'toMatchSpecificSnapshot' matcher
require('jest-specifics-snapshot');

test('test', () => {
  // provides snapshot file with absolute file
  const pathToSnap = path.resolve(process.cwd(), './example/specific/dir/my.shot');
  expect(100).toMatchSpecificSnapshot(pathToSnap);

  //same snapshot but with relative file
  expect(14).toMatchSpecificSnapshot('./specific/dir/my.shot');

  // another snapshot file in the same test
  expect(19).toMatchSpecificSnapshot('./specific/another_dir/another.shot');
});

With Custom Serializer

const path = require('path');
// extend jest to have 'toMatchSpecificSnapshot' matcher
const addSerializer = require('jest-specifics-snapshot').addSerializer;

addSerializer(/* Add custom serializer here */);

test('test', () => {
  // another snapshot file in the same test
  expect(/* thing that matches the custom serializer */).toMatchSpecificSnapshot('./specific/custom_serializer/test.shot');
});

Limitations

  1. Snapshot files should have an extension other than .snap, since it conflicts with jest.
  2. In order to handle the --updateSnapshot (-u) parameter provided from CLI, there is an abuse of the SnapshotState._updateSnapshot private field. TBD - try to use the globalConfig to get this state.
  3. .toMatchSpecificSnapshot does ignore a custom serializers strategy. In order to support custom serializers, you should use the addSerializer method explicitly.
  4. TBD

About

Jest matcher for multiple snapshot files per test

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • JavaScript 100.0%