Socket
Socket
Sign inDemoInstall

jest-specific-snapshot

Package Overview
Dependencies
Maintainers
1
Versions
14
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

jest-specific-snapshot

[![CircleCI](https://circleci.com/gh/igor-dv/jest-specific-snapshot.svg?style=svg)](https://circleci.com/gh/igor-dv/jest-specific-snapshot)


Version published
Maintainers
1
Install size
Created

Package description

What is jest-specific-snapshot?

The jest-specific-snapshot package allows you to create and manage Jest snapshots in a more granular and specific manner. It provides functionality to create snapshots for specific tests and manage them independently, which can be useful for large test suites or when you need more control over your snapshot testing.

What are jest-specific-snapshot's main functionalities?

Creating a specific snapshot

This feature allows you to create a snapshot for a specific test and store it in a specified file. This can be useful for organizing snapshots and keeping them separate from other tests.

const { toMatchSpecificSnapshot } = require('jest-specific-snapshot');
expect.extend({ toMatchSpecificSnapshot });

test('example test', () => {
  const data = { key: 'value' };
  expect(data).toMatchSpecificSnapshot('./__snapshots__/example.snap');
});

Updating a specific snapshot

This feature allows you to update an existing snapshot for a specific test. If the snapshot already exists, it will be updated with the new data provided in the test.

const { toMatchSpecificSnapshot } = require('jest-specific-snapshot');
expect.extend({ toMatchSpecificSnapshot });

test('example test', () => {
  const data = { key: 'new value' };
  expect(data).toMatchSpecificSnapshot('./__snapshots__/example.snap');
});

Other packages similar to jest-specific-snapshot

Readme

Source

CircleCI


Jest Specific Snapshot

Jest matcher for multiple snapshot files per test

You can read about the implementation here

Installation

npm i -D jest-specific-snapshot

Example

const path = require('path');
// extend jest to have 'toMatchSpecificSnapshot' matcher
require('jest-specific-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

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

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

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

Extend toMatchSpecificSnapshot

const toMatchSpecificSnapshot = require('jest-specific-snapshot').toMatchSpecificSnapshot;

expect.extend({
  toMatchDecoratedSpecificSnapshot(received, snapshotFile) {
    // You can modify received data or create dynamic snapshot path
    const data = doSomeThing(received);
    return toMatchSpecificSnapshot.call(this, data, snapshotFile);
  },
});

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.

FAQs

Package last updated on 05 Mar 2023

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc