Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/unboundedsystems/mocha-nock
Easy recording and playback of HTTP(S) for Mocha.js using Nock.
https://github.com/unboundedsystems/mocha-nock
http https javascript mocha mochajs mock mocks nock nodejs testing
Last synced: 3 months ago
JSON representation
Easy recording and playback of HTTP(S) for Mocha.js using Nock.
- Host: GitHub
- URL: https://github.com/unboundedsystems/mocha-nock
- Owner: unboundedsystems
- Fork: true (poetic-labs/nock-vcr-recorder-mocha)
- Created: 2018-12-18T05:17:04.000Z (about 6 years ago)
- Default Branch: master
- Last Pushed: 2024-05-14T08:17:26.000Z (8 months ago)
- Last Synced: 2024-05-14T09:34:15.720Z (8 months ago)
- Topics: http, https, javascript, mocha, mochajs, mock, mocks, nock, nodejs, testing
- Language: JavaScript
- Homepage:
- Size: 240 KB
- Stars: 3
- Watchers: 3
- Forks: 3
- Open Issues: 10
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
![npm](https://img.shields.io/npm/v/mocha-nock)
[![Build Status](https://travis-ci.com/unboundedsystems/mocha-nock.svg?branch=master)](https://travis-ci.com/unboundedsystems/mocha-nock)
![Dependencies](https://david-dm.org/unboundedsystems/mocha-nock.svg)# Mocha Nock
A library that makes saving fixtures with
[nock](https://github.com/pgte/nock) and
[mocha](http://mochajs.org/) easy. Just
use `describeFixture` instead of `describe` and it will record outbound requests
using nock into `test/fixtures` and read from them the next time you run the
tests.## Install
```bash
npm install --save-dev mocha-nock
```## Usage
Use `describeFixture` instead of `describe` and it will use nock to record all
requests.The first time this test executes, it will save the HTTP request & response into your `test/fixtures` directory.
Then on subsequent tests, it will return the saved data and not use the network.```js
const describeFixture = require('mocha-nock');
const request = require('request-promise-native');describeFixture('normal test', () => {
it('works', async () => {
const response = await request('http://localhost:4000/users');
});describe('some other test', () => {
// You can use mocha how you normally would to group tests
});
});
```It also supports `.skip` and `.only`, like mocha does.
```js
describeFixture.skip('skipped test', () => {
// Anything in here will be skipped
});describeFixture.only('only test', () => {
// This will be the only test run
});
```### Usage with test specific options
```js
// This test will not record the request to localhost:4000.
// For anything it does record, it will also record the reqheaders.
const opts = {
excludeScope: 'localhost:4000',
recorder: {
enable_reqheaders_recording: true
}
};describeFixture('normal test', opts, () => {
it('works', async () => {
const resp1 = await request('http://localhost:4000/users');
const resp2 = await request('https://google.com/');
});
});
```## Configuration
Defaults:
```js
{
// Don't record any requests to this scope
// It can be an array or string
excludeScope: ['localhost', '127.0.0.1', '0.0.0.0'],// Re-record and overwrite your current fixtures
overwrite: false,// Record fixtures when test fails
recordOnFailure: false,// These options are passed to the nock recorder that runs behind the scenes
// to capture requests
recorder: {
output_objects: true,
dont_print: true
}
}
```To overide these you can call `describeFixture.setDefaults` with an object to
override them for ALL tests. It must be called before any `describeFixture()` is
called to work properly. The best place is in a test helper file.You also are able to pass in test specific options as the last parameter to
`describeFixture()`. See the [Usage](#usage) section above for an example.## Authors
Originally based off of an older version of [nock-vcr-recorder](https://github.com/poetic-labs/nock-vcr-recorder-mocha)
by Jake Craige.* [Mark Terrel](https://twitter.com/MarkTerrel)
* [Jake Craige](http://twitter.com/jakecraige)## Legal
© 2018-2019 [Unbounded Systems, LLC](https://unbounded.systems)
© 2014 [Poetic Systems, Inc.](http://poeticsystems.com)
[Licensed under the MIT license](http://www.opensource.org/licenses/mit-license.php)