icedfrisby-nock

2.1.0 • Public • Published

icedfrisby-nock

version license build coverage code style

Concise support for mock requests in IcedFrisby.

Usage

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.

Installation

npm install --save-dev icedfrisby nock icedfrisby-nock

Who's using this

This project was developed for testing Shields.io.

Contribute

Pull requests welcome!

Support

If you are having issues, please let me know.

License

The project is licensed under the MIT license.

Package Sidebar

Install

npm i icedfrisby-nock

Weekly Downloads

1,051

Version

2.1.0

License

MIT

Unpacked Size

9.09 kB

Total Files

5

Last publish

Collaborators

  • paulmelnikow
  • pyves