mocha-assert-snapshot

Snapshot test utilities for mocha

Downloads in past

Stats

StarsIssuesVersionUpdatedCreatedSize
mocha-assert-snapshot
410.1.03 years ago3 years agoMinified + gzip package size for mocha-assert-snapshot in KB

Readme

mocha-assert-snapshot
npm version Downloads/month Build Status codecov Dependency Status
A snapshot testing utility for Mocha.

🏁 Goal

This package provides utilities to do Snapshot Testing on Mocha.

💿 Installation

Use npm or a compatible tool to install.
npm install mocha-assert-snapshot

📖 Usage

Give --require mocha-assert-snapshot option to Mocha.
mocha --require mocha-assert-snapshot -- test/**/*.js

It registers root hooks to read/write snapshots.
Then use assertSnapshot(value) or assertSnapshotThrows(func) in your tests.
import { assertSnapshot, assertSnapshotThrows } from "mocha-assert-snapshot";

it("a snapshot test", () => {
  const actual = doSomething();
  assertSnapshot(actual);
});

it("a snapshot test (async)", async () => {
  const actual = await doSomething();
  assertSnapshot(actual);
});

it("a snapshot test for thrown errors", () => {
  assertSnapshotThrows(() => {
    throw new Error("my error");
  });
});

it("a snapshot test for thrown errors (async)", async () => {
  await assertSnapshotThrows(async () => {
    throw new Error("my error");
  });
});

Of course, it works well along with the --parallel option.

■ Update Snapshot

There are two ways to update snapshots.

  1. --update

Giving --update CLI option, it updates snapshots.
mocha --require mocha-assert-snapshot --update -- test/**/*.js

It's nice, but it doesn't work on parallel mode because Mocha doesn't pass the CLI arguments to workers.

  1. MOCHA_ASSERT_SNAPSHOT=update

Giving MOCHA_ASSERT_SNAPSHOT=update environment variable, it updates snapshots.
MOCHA_ASSERT_SNAPSHOT=update mocha --require mocha-assert-snapshot -- test/**/*.js

If you want to use this way on cross-platform, use cross-env package or something like that.

📰 Changelog

See GitHub Releases.

🍻 Contributing

Welcome contributing!
Please use GitHub's Issues/PRs.

Development Tools

  • npm test runs tests and measures coverage.
  • npm run build compiles source code to index.mjs, index.js, index.mjs.map, index.js.map, and index.d.ts.
  • npm run clean removes the temporary files which are created by npm test and npm run build.
  • npm run format runs Prettier.
  • npm run lint runs ESLint.
  • npm version <patch|minor|major> makes a new release.