axios-record-replay-adapter
TypeScript icon, indicating that this package has built-in type declarations

1.1.1 • Public • Published

axios-record-replay-adapter 🎥 🎬 🍿

npm version npm downloads styled with prettier build status

Sit back, relax, and enjoy automatic mocking for axios HTTP requests

Table of contents

Installation

yarn

yarn add axios
yarn add axios-record-replay-adapter --dev

npm

npm i axios --save
npm i axios-record-replay-adapter --save-dev

Setup

Ignore recordings directory

When running tests in watch mode, the recordings directory must be ignored to prevent recording files from triggering tests to re-run.

Jest

{
  "jest": {
    "watchPathIgnorePatterns": [
      "<rootDir>/recordings"
    ]
  }
}

Usage

With defaults

useAxiosRecordReplayAdapter()

With options

const customAxiosIntance = axios.create()
useAxiosRecordReplayAdapter({
  axiosInstance: customAxiosInstance
  recordingsDir: './tests/recordings'
})

Restore axios default adapter

axios-record-replay-adpater returns a function to restore the default axios adapter.

const restoreDefaultAdapater = useAxiosRecordReplay()
restoreDefaultAdapater()

Advanced usage

With buildRequest()

useAxiosRecordReplayAdapter({
  buildRequest(axiosRequestConfig) {
    return {
      path: new URL(axiosRequestConfig.url).pathname
    }
  }
})

With buildResponse()

useAxiosRecordReplayAdapter({
  buildResponse(axiosResponse) {
    return {
      data: axiosResponse.data
    }
  }
})

With buildFilenamePrefix()

NOTE: The result of buildRequest() gets passed to buildFilenamePrefix(request)

useAxiosRecordReplayAdapter({
  buildFilenamePrefix(requestFromBuildRequest) {
    return request.path.replace(/\//g, '-').slice(1)
  }
})

Contributing

  1. Fork this repository to your own GitHub account and then clone it to your local device
  2. Install the dependecies using yarn
  3. Link the package to the global module directory: yarn link
  4. Run yarn test --watch and start making your changes
  5. You can use yarn link axios-record-replay-adapter to test your changes in a local project
  6. Ensure any changes are documented in CHANGELOG.md

License

MIT © Brent Mealhouse

Readme

Keywords

none

Package Sidebar

Install

npm i axios-record-replay-adapter

Weekly Downloads

18

Version

1.1.1

License

MIT

Unpacked Size

39.3 kB

Total Files

12

Last publish

Collaborators

  • bmealhouse