New Research: Supply Chain Attack on Axios Pulls Malicious Dependency from npm.Details →
Socket
Book a DemoSign in
Socket

sinon-vcr

Package Overview
Dependencies
Maintainers
1
Versions
3
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

sinon-vcr

sinon-vcr

latest
Source
npmnpm
Version
0.0.3
Version published
Weekly downloads
10
Maintainers
1
Weekly downloads
 
Created
Source

Sinon-VCR

Circle CI

Code Climate

Sinon-VCR integrates with the sinon.fakeServer method of SinonJS, allowing developers to select a set of XHR responses to playback during test interactions.

Requirements

You must have a test suite that:

  • Depends on AJAX requests from the browser.
  • Conforms to CommonJS syntax. (supports require calls using i.e. Browserify or Webpack).
  • Uses SinonJS.

Setup

npm install -D sinon-vcr

Usage

Setup

  • Create a mock (see below), or see Lunchtime Labs MockBuilder to learn how to generate them.

  • Place 'mock' files into your 'spec' or 'test' directory where they can be read.

    i.e. spec/fixtures/vcr/.

  • Use the mocks in your tests as AJAX responses.

Example using Karma/Browserify

karma.conf.js

    browserify: {
      paths: [ __dirname + "/spec/fixtures/" ]
    },

spec/fixtures/vcr/autoplayFalse.js

var response = {
   "autoplay": "false"
};

module.exports = [
  {
    method: "GET",
    url: /www\.example\.com/,
    status: 200,
    headers: {
      "Content-Type": "application/json"
    },
    response: JSON.stringify(response)
  }
]

Mocha Example

var VCR = require('sinon-vcr');
var autoplayFalse = require('vcr/autoplayFalse');

describe('myObject', function() {
  beforeEach(function() {
    VCR.init();
  });

  afterEach(function() {
    VCR.reset();
  });

  it('responds with autoplay false', function(done) {
    VCR.use(autoplayFalse);

    $.get("http://www.example.com/", function (response) {
      expect(response.autoplay).to.eq(false);
      done();
    });
  });
});

API

server

Allows direct access to sinon's FakeServer

VCR.server.requests // Show requests received by Sinon FakeServer

init:

function( capture: string )

Intitializes VCR and sets it up to receive use calls.

Optionally passing the string capture will allow ajax to pass through, and place a debugger statement in the reset method that will allow you an opportunity to pause Javascript exeution and save a .har file.

VCR.init(); // Mock AJAX
VCR.init('capture'); // AJAX runs normally, stop JS execution at cleanup

reset:

function ()

Restore the sinon fakeServer between requests.

VCR.reset();

use:

function (mock: object)

Use an XHR mock for XHR playback.

VCR.use(require('vcr/mock');

Contributing

Setup

git clone git@github.com:lunchtime-labs/sinon-vcr.git
npm install

Usage

gulp or gulp test for TDD with Karma.

Tests

Uses Karma test runner with Mocha and the Jquery-Chai expectations library, with Sinon for mocking.

FAQs

Package last updated on 08 Dec 2016

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