@npmcli/tap-nock

2.0.1 • Public • Published

@npmcli/tap-nock

A tap extension that integrates nock.

Features

  • t.nock()
    • automatically calls nock.disableNetConnect()
    • arguments are passed directly to nock, and the result from nock returned
    • asserts all nock scopes created within a test have been consumed
    • cleans only the nock scopes created within the current test, keeping nocks from parent tests
    • if no parent tests have nocks, calls nock.enableNetConnect() in teardown
  • t.nock.snapshot()
    • when snapshots are enabled, sends real requests and records responses to a fixture
    • when snapshots are not enabled, loads fixture data and sets up nock scopes for you

Usage

const fetch = require('minipass-fetch')
const tapNock = require('@npmcli/tap-nock')
const t = tapNock(require('tap'))

t.test('sends a request', async (t) => {
  t.nock('https://registry.npmjs.org')
    .get('/')
    .reply(200, { hello: 'world' })

  const res = await fetch('https://registry.npmjs.org')
  t.equal(res.status, 200)
  const body = await res.json()
  t.same(body, { hello: 'world' })
})

// when snapshots are enabled, this test will send a real request and record the response
// when they are disabled, the recorded response will be automatically loaded into a nock
// scope, and the test will receive that response
t.test('snapshots a request', async (t) => {
  t.nock.snapshot()

  const res = await fetch('https://registry.npmjs.org')
  t.equal(res.status, 200)
  const body = await res.json()
  t.match(body, { db_name: 'registry' })
})

Readme

Keywords

Package Sidebar

Install

npm i @npmcli/tap-nock

Weekly Downloads

69

Version

2.0.1

License

ISC

Unpacked Size

12.9 kB

Total Files

7

Last publish

Collaborators

  • npm-cli-ops
  • saquibkhan
  • fritzy
  • gar
  • lukekarrys