simple-vcr
TypeScript icon, indicating that this package has built-in type declarations

0.0.2 • Public • Published

SimpleVCR

The EASY way to record and replay HTTP requests for testing.

Why

Inspired by VCR in the Ruby world, we decided to create something simple as making specs in RSpec, but for use in Node and Jest, you add some methods and works like magic!

What

SimpleVCR intercepts HTTP requests and records this requests into JSON files, it uses Nock under the hood to intercept HTTP calls and get the relevant informations for store it.

Installation

Using NPM:

npm install simple-vcr --save-dev

Using Yarn:

yarn add simple-vcr -D

Usage

For use it, you need to import it and add some methods in your beforeEach() and afterEach() cycle test:

import { SimpleVCR } from 'simple-vcr'
import { getTodos } from '@functions/todo' // Import your function

describe('getTodos', () => {
  const vcr = new SimpleVCR('todo/get-todos-fixture') // Specify a path and a name for this fixture

  beforeEach(() => {
    vcr.on() // Turn On the VCR for intercept HTTP requests
  })

  afterEach(() => {
    vcr.off() // It will record all your HTTP requests made in this test, in one file! and turn Off
  })

  it('should be success', async () => {
    const responseBody = await getTodos(1)
    const expectedResponse = {
      userId: 1,
      id: 1,
      title: 'delectus aut autem',
      completed: false,
    }

    expect(responseBody).toEqual(expectedResponse)
  })
})

And that's it!

Your test should pass using real requests and record the results, run the test again and you no longer need the server running.

License

MIT

Package Sidebar

Install

npm i simple-vcr

Weekly Downloads

1

Version

0.0.2

License

MIT

Unpacked Size

485 kB

Total Files

6

Last publish

Collaborators

  • bryann.barbosa
  • luc.emanuel