mocha-assert-snapshot

Snapshot test utilities for mocha

Usage no npm install needed!

<script type="module">
  import mochaAssertSnapshot from 'https://cdn.skypack.dev/mocha-assert-snapshot';
</script>

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.

2. 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.