Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/bodrovis/mocha-cassettes
Record HTTP interactions in your Mocha tests
https://github.com/bodrovis/mocha-cassettes
http mocha nock node record test vcr
Last synced: about 2 months ago
JSON representation
Record HTTP interactions in your Mocha tests
- Host: GitHub
- URL: https://github.com/bodrovis/mocha-cassettes
- Owner: bodrovis
- License: mit
- Created: 2020-03-18T12:20:34.000Z (almost 5 years ago)
- Default Branch: master
- Last Pushed: 2023-12-14T20:32:09.000Z (about 1 year ago)
- Last Synced: 2024-04-16T01:07:25.020Z (9 months ago)
- Topics: http, mocha, nock, node, record, test, vcr
- Language: TypeScript
- Homepage:
- Size: 1.18 MB
- Stars: 2
- Watchers: 4
- Forks: 2
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- Contributing: .github/CONTRIBUTING.md
- License: LICENSE
- Code of conduct: .github/CODE_OF_CONDUCT.md
Awesome Lists containing this project
README
# MochaCassettes
![npm](https://img.shields.io/npm/v/mocha-cassettes)
![CI](https://github.com/bodrovis/mocha-cassettes/actions/workflows/ci.yml/badge.svg)Node.js library based on [Nock](https://github.com/nock/nock) to record HTTP interactions in [Mocha](https://mochajs.org/) tests.
## Prerequisites
This library requires Node 10 or higher.
## Installation
Install with [NPM](https://npmjs.org):
```
npm install -D mocha-cassettes
```## Usage
Import the `Cassettes` module in your test:
```ts
import { Cassettes } from 'mocha-cassettes';
```Create an instance while providing a path to the folder where your recorded cassettes should reside:
```ts
describe('Feature', function () {
const cassette = new Cassettes('./test/cassettes');
});
```Now create the actual test:
```ts
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:
```ts
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](https://github.com/fossas/mocha-tape-deck) and licensed under the [MIT License](https://github.com/bodrovis/mocha-vcr/blob/master/LICENSE).
Copyright (c) [Ilya Krukowski](http://bodrovis.tech), Roman Kutanov