Concise support for mock requests in IcedFrisby.
Compose icedfrisby with icedfrisby-nock.
const frisby = require('icedfrisby-nock')(require('icedfrisby'))
or, more semantically, using the delightful mixwith:
const { mix } = require('mixwith')
const frisby = mix(require('icedfrisby')).with(require('./icedfrisby-nock'))
Allow connections to localhost, but simulate failure for any other HTTP connections.
await frisby.create(...)
.get(...)
.networkOff()
.expectJSON(...)
.run()
Mock one request, and simulate failure for any other HTTP connection.
intercept()
automatically invokes networkOff()
.
await frisby.create(...)
.get(...)
.intercept(nock => nock('http://example.com')
.get('/foobar')
.reply(200))
.expectJSON(...)
.run()
Mock one request and allow all other HTTP connections.
await frisby.create(...)
.get(...)
.intercept(nock => nock('http://example.com')
.get('/foobar')
.reply(200))
.networkOn()
.expectJSON(...)
.run()
Mock one request only if a condition is truthy.
const someCondition = true
await frisby.create(...)
.get(...)
.interceptIf(someCondition, nock => nock('http://example.com')
.get('/foobar')
.reply(200))
.expectJSON(...)
.run()
When using intercept()
, interceptIf()
or networkOff()
, the plugin restores network access
when the test finishes.
To check if a Frisby object has an intercept set, inspect the hasIntercept
property.
To skip the test if an intercept is present, invoke .skipIfIntercepted()
on
the chain. This is useful with when invoked from a shared setup function or
when performing conditional intercepts.
For the Nock API, refer to the Nock docs.
For the IcedFrisby API, refer to the IcedFrisby docs.
npm install --save-dev icedfrisby nock icedfrisby-nock
This project was developed for testing Shields.io.
- Issue Tracker: https://github.com/paulmelnikow/icedfrisby-nock/issues
- Source Code: https://github.com/paulmelnikow/icedfrisby-nock
Pull requests welcome!
If you are having issues, please let me know.
The project is licensed under the MIT license.