New Case Study:See how Anthropic automated 95% of dependency reviews with Socket.Learn More
Socket
Sign inDemoInstall
Socket

nock-record-next

Package Overview
Dependencies
Maintainers
1
Versions
1
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

nock-record-next

Small wrapper around Nock Back, with improved ergonomics.

  • 0.3.4
  • latest
  • Source
  • npm
  • Socket score

Version published
Weekly downloads
3
decreased by-25%
Maintainers
1
Weekly downloads
 
Created
Source

Small wrapper around Nock Back, with improved ergonomics.

CircleCI

:heavy_check_mark: Testing framework agnostic
:heavy_check_mark: Types included
:heavy_check_mark: Works with promises (so enables async/await)

Workflow

If you're familiar with Jest Snapshots, the following workflow should feel familiar.

  1. Record actual HTTP requests on first-time test run
  2. Request + response are written to a file
  3. A nock will be created on subsequent test runs, based on the previous recording

Usage gif

Usage

import { setupRecorder } from "nock-record";
import { getGithubProfile } from "./githubProfile";

const record = setupRecorder();

describe("#getGithubProfile", () => {
  it("should retrieve user info", async () => {
    // Start recording, specify fixture name
    const { completeRecording, assertScopesFinished } = await record("github-edorivai");

    // Run your function under test
    const result = await getGithubProfile("edorivai");

    // Complete the recording, allow for Nock to write fixtures
    completeRecording();
    // Optional; assert that all recorded fixtures have been called
    assertScopesFinished();

    // Perform your own assertions
    expect(result).toMatchSnapshot();
  });
});

API

setupRecorder

Sets up your recorder

// Signature:
function setupRecorder(options?: RecorderOptions): Record;

// Usage:
const record = setupRecorder({ mode: 'record' });

Recorder Options

optiondefaultdescription
fixturePath{test-directory}/__nock-fixtures__The directory where fixtures will be stored
moderecord"wild" | "dryrun" | "record" | "lockdown" See official docs for details

record

Starts recording HTTP requests

// Signature:
function record(fixtureName: string, options: nock.NockBackOptions = {}): Promise<Recording>;

// Usage:
const recording = await record("your-fixture-name");

Recording

Returned from a call to record

propertytypedescription
completeRecording() => voidTells Nock to complete the recording and write any fixtures
assertScopesFinished() => voidAsserts whether all recorded scopes have finish
scopesNock.Scope[]All Nock Scopes associated with this recording

Usage:

const { completeRecording, assertScopesFinished } = await record("your-fixture-name");

await yourFunctionThatSendsRequests();

completeRecording();
assertScopesFinished();

Running the example

Clone this repo, then run:

npm install
npm run build
npm run test-examples

FAQs

Package last updated on 21 May 2020

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc