Snapsnap
Capture, cache, and replay HTTP queries in your tests using Nock.
- On the first run, the tests make real HTTP queries.
- The queries and the responses are stored in
__http__/
. - On subsequent runs, cached responses are loaded from
__http__/
and used instead of real queries. - This is super helpful if your tests run in an environment that has no internet access, or you wish to maintain a snapshot of the responses.
Usage
Snapsnap behaves similarly to Jest Snapshots. If an HTTP query has not been snapshotted, a real HTTP query will be made. Otherwise, a cached version of the query will be returned.
To signal that a test should be snapshotted, simply use it.snap()
instead of it()
. The framework will manage the rest.
it.snap(
'should query the API',
async () => {
const result = await request('https://postman-echo.com/get?foo1=bar1&foo2=bar2');
const json = await result.json();
expect(json).toMatchSnapshot();
}
);
Setting Up
Jest
Supports Jest with Circus (=default) test runner.
Configuring Jest
Snapsnap is implemented as a test environment that extends Jest's built-in NodeEnvironment
.
module.exports = {
testEnvironment: 'snapsnap/jest-env.js'
};
Acknowledgments
Based on Jest Nock Back and Jest Nock.