Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/florianrappl/jest-fs-snapshot
Jest matcher for filesystem snapshotting.
https://github.com/florianrappl/jest-fs-snapshot
Last synced: 4 days ago
JSON representation
Jest matcher for filesystem snapshotting.
- Host: GitHub
- URL: https://github.com/florianrappl/jest-fs-snapshot
- Owner: FlorianRappl
- License: mit
- Created: 2018-07-04T05:11:57.000Z (over 6 years ago)
- Default Branch: develop
- Last Pushed: 2024-06-18T01:18:33.000Z (5 months ago)
- Last Synced: 2024-10-24T06:02:57.684Z (13 days ago)
- Language: JavaScript
- Homepage: http://npm.im/jest-fs-snapshot
- Size: 1.05 MB
- Stars: 7
- Watchers: 4
- Forks: 1
- Open Issues: 3
-
Metadata Files:
- Readme: README.md
- Funding: .github/FUNDING.yml
- License: LICENSE
Awesome Lists containing this project
README
# jest-fs-snapshot · [![npm][1]][2] [![Build Status][3]][4]
[Jest](https://jestjs.io) matcher for filesystem snapshotting.
## Table of Contents
- [Installation](#installation)
- [Getting Started](#getting-started)
- [API](#api)
- [`toMatchFilesystemSnapshot`](#tomatchfilesystemsnapshot)
- [Credits](#credits)## Installation
```sh
yarn add jest-fs-snapshot
```## Getting Started
1. Extend Jest's `expect`
```js
import { toMatchFilesystemSnapshot } from 'jest-fs-snapshot';expect.extend({ toMatchFilesystemSnapshot });
```2. Use it in your tests!
```js
test('if build directory matches snapshot', () => {
const pathToBuildDir = path.resolve(process.cwd(), '.build');
expect(pathToBuildDir).toMatchFilesystemSnapshot();
});
```This will create a `__fs_snapshots__` folder next to your test file with a snapshot file. On next runs it will chech if
the snapshot against the source directory and with throw on mismatches.## API
### .toMatchFilesystemSnapshot([pathToSnapshot, options])
#### Arguments
1. `pathToSnapshot` _(String)_: An optional full path to a snapshot file.
2. `options` _(Object)_: An optional object with additional configurations.
1. `customCompare` _({check: Function, compare: Function}[])_: Any custom compare function will be applied only if
the check method returns true. If multiple checks return true, the first hit will be used.#### Example
```js
const diff = require('jest-diff');const snapshotOptions = {
customCompare: [
{
check: path => path.endsWith('package.json'),
compare: (actualBuffer, expectedBuffer) => {
const actual = JSON.parse(actualBuffer);
const expected = JSON.parse(expectedBuffer);// we want to ignore the peerModules
delete actual.peerModules;
delete expected.peerModules;return diff(actual, expected);
},
},
{
// test.js files will be ignored
check: path => path.endsWith('.test.js'),
compare: () => true,
},
],
};describe('...', () => {
it('...', () => {
/**
* ...
*/
expect(pathToBuildDir).toMatchFilesystemSnapshot(undefined, snapshotOptions);
});
});
```## Credits
Many files for `encodings` fixture have been taken from https://github.com/mbbill/fencview.
---
[1]: https://img.shields.io/npm/v/jest-fs-snapshot.svg
[2]: https://npm.im/jest-fs-snapshot
[3]: https://florianrappl.visualstudio.com/piral-cli-plugins/_apis/build/status/FlorianRappl.jest-fs-snapshot?branchName=master
[4]: https://florianrappl.visualstudio.com/piral-cli-plugins/_build/latest?definitionId=29&branchName=master## License
This package is released using the MIT license. For more information see the [license file](./LICENSE).