Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

nettofarah/axios-vcr

Repository files navigation

axios-vcr

πŸ“Ό Record and Replay requests in JavaScript

axios-vcr is a set of axios middlewares that allow you to record and replay axios requests. Use it for reliable, fast and more deterministic tests.

Build Status

Features

  • Record http requests to JSON cassette files
  • Replay requests from cassete files
  • Multiple request/response fixtures per cassette
  • Cassette expiration logic
  • Mocha integration
  • non-global axios instances support

Installation

$ npm install --save-dev axios-vcr

Usage

Using axios-vcr is very simple. All you need to do is to provide a cassette path and wrap your axios code with axiosVCR.mountCassette and axiosVCR.ejectCassette.

const axiosVCR = require('axios-vcr');
axiosVCR.mountCassette('./test/fixtures/cats.json')
axios.get('https://reddit.com/r/cats.json').then(response => {
 // axios-vcr will store the remote response from /cats.json
 // in ./test/fixtures/cats.json
 // Subsequent requests will then load the response directly from the file system
 axiosVCR.ejectCassette('https://reddit.com/r/cats.json')
})

Usage in a test case

it('makes your requests load faster and more reliably', function(done) {
 // mount a cassette
 axiosVCR.mountCassette('./fixtures/test_case_name.json')
 myAPI.fetchSomethingFromRemote().then(function(response) {
 assert.equal(response.something, 'some value')
 done()
 // Eject the cassette when all your promises have been fulfilled
 axiosVCR.ejectCassette('./fixture/test_case_name.json')
 })
})

Contributing

Bug reports and pull requests are welcome on GitHub at https://github.com/nettofarah/axios-vcr. This project is intended to be a safe, welcoming space for collaboration, and contributors are expected to adhere to the Code of Conduct.

To run the specs check out the repo and follow these steps:

$ npm install
$ npm test

License

The module is available as open source under the terms of the MIT License.

AltStyle γ«γ‚ˆγ£γ¦ε€‰ζ›γ•γ‚ŒγŸγƒšγƒΌγ‚Έ (->γ‚ͺγƒͺγ‚ΈγƒŠγƒ«) /