Giter Club home page Giter Club logo

mocha-assert-snapshot's Introduction

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.

mocha-assert-snapshot's People

Contributors

mysticatea avatar

Stargazers

Steffen Neubauer avatar Roman avatar Hnin Diab Singer avatar ๅ”ฏ็„ถ avatar kazuya kawaguchi avatar

Watchers

James Cloos avatar  avatar  avatar

mocha-assert-snapshot's Issues

Dual package hazard with mocha@9

mocha@9 imports root hook plugins with ESM imports. And if require("mocha-assert-snapshot") is used in tests, it imports CJS version.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.