superagent-nock
Version:
Mock superagent http requests
85 lines (71 loc) • 1.48 kB
Markdown
Very simple mock of superagent http requests for testing purpose (from Node.js or the browser).
Inspired by superagent-mocker, superagent-mock and nock.
Used for testing React components with Redux and Observable.
# Usage
## Setup
```js
import request from 'superagent';
import nocker from 'superagent-nock';
const nock = nocker(request);
```
Define the base url
```js
nock('http://localhost')
```
The url to mock
```js
nock.get('/events/10')
```
The result to return
```js
nock.reply(httpStatus, responseBody, responseHeaders, foo)
```
or specify a function
```js
nock.reply(function(url) {
return {
status: 200,
result: responseBody,
headers: {'access-token': 'example-JSON-Web-Token'},
foo: {
something,
},
};
})
```
Then, when you do a get request on the url, the callback return the specified result
```js
nock('http://localhost')
.get('/events/10')
.reply(200, {
id: 10,
title: 'My event'
});
request
.get('http://localhost/events/10')
.end((err, res) => {
console.log(res.body); // { id: 10, title: 'My event'}
};
```
You can chain your urls to mock:
```js
nock('http://localhost')
.get('/events/10')
.reply(200, {
id: 10,
title: 'My event'
})
.get('/members/1')
.reply(404);
```
You should probably install it in devDependencies (-D)
```sh
$ npm i -D superagent-nock
```
# Next TODO
nock.delay
nock.query