mocha-assert-snapshot v0.1.0
mocha-assert-snapshot
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/**/*.jsIt 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/**/*.jsIt'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/**/*.jsIf 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 testruns tests and measures coverage.npm run buildcompiles source code to index.mjs, index.js, index.mjs.map, index.js.map, and index.d.ts.npm run cleanremoves the temporary files which are created by npm test and npm run build.npm run formatruns Prettier.npm run lintruns ESLint.npm version <patch|minor|major>makes a new release.
5 years ago