Skip to content

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

License

Notifications You must be signed in to change notification settings

bmealhouse/axios-record-replay-adapter

Repository files navigation

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

About

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

Resources

License

Stars

Watchers

Forks

Packages

No packages published