Skip to content

bodrovis/mocha-cassettes

Repository files navigation

MochaCassettes

npm CI

Node.js library based on Nock to record HTTP interactions in Mocha tests.

Prerequisites

This library requires Node 10 or higher.

Installation

Install with NPM:

npm install -D mocha-cassettes

Usage

Import the Cassettes module in your test:

import { Cassettes } from 'mocha-cassettes';

Create an instance while providing a path to the folder where your recorded cassettes should reside:

describe('Feature', function () {
  const cassette = new Cassettes('./test/cassettes');
});

Now create the actual test:

cassette.createTest('get request', async () => {
  const response = await got('http://localhost/test');
  expect(response.body).to.be.equal('ok');
}).register(this);

If the cassette does not exist, it will be recorded for you once you run the test. All subsequent test runs will utilize the recorded cassette. Set the environment variable NO_CASSETTE_MOCKING to ignore all mocking code.

Here is the full example:

import { Cassettes } from 'mocha-cassettes';

describe('Feature', function () {
  const cassette = new Cassettes('./test/cassettes');

  cassette.createTest('get request', async () => {
    const response = await got('http://localhost/test');
    expect(response.body).to.be.equal('ok');
  }).register(this);
});

License

This library is based on mocha-tape-deck and licensed under the MIT License.

Copyright (c) Ilya Krukowski, Roman Kutanov