Asserts a string matches a snapshot saved in a file. An environment variable can be used to save rather than assert snapshots.
To install snapshot-assertion
with npm, run:
npm install snapshot-assertion --save-dev
Then, import and use the function assertSnapshot
.
A snapshot assertion in a test-director
test:
import fetch from "node-fetch";
import assertSnapshot from "snapshot-assertion";
import TestDirector from "test-director";
const tests = new TestDirector();
tests.add("Get a todo.", async () => {
const response = await fetch("https://jsonplaceholder.typicode.com/todos/1");
await assertSnapshot(await response.json(), "snapshots/todo.json");
});
tests.run();
Using the SAVE_SNAPSHOTS
environment variable to save snapshots when running a package script:
SAVE_SNAPSHOTS=1 npm run test
Supported runtime environments:
- Node.js versions
^16.9.0 || >= 18.0.0
.
Projects must configure TypeScript to use types from the ECMAScript modules that have a // @ts-check
comment:
compilerOptions.allowJs
should betrue
.compilerOptions.maxNodeModuleJsDepth
should be reasonably large, e.g.10
.compilerOptions.module
should be"node16"
or"nodenext"
.
The npm package snapshot-assertion
features optimal JavaScript module design. These ECMAScript modules are exported via the package.json
field exports
: