Skip to content

Latest commit

 

History

History
128 lines (94 loc) · 2.77 KB

README.md

File metadata and controls

128 lines (94 loc) · 2.77 KB

axios-record-replay-adapter 🎥 🎬 🍿

npm version npm downloads styled with prettier

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