Mock driver
Introduction
This driver could be useful for tests or if you want to work on integration with an API endpoint
which is not finished yet. It doesn't really do any requests, it just pretends to do them.
With the help of mock driver, instead of waiting for backend developers you can
immediately start working with mock driver for some of your request actions and then
you could replace it with a "real" driver like axios once backend is ready.
Installation
To install the package, just run:
$ npm install @redux-requests/mockor you can just use CDN: https://unpkg.com/@redux-requests/mock.
Usage
As always, pass it to handleRequests first:
import { handleRequests } from '@redux-requests/core';import { createDriver } from '@redux-requests/mock';
handleRequests({ driver: createDriver({ // optional, in ms, defining how much time mock request would take, useful for testing spinners timeout: 1000, }),});Then, start using it inside your request actions:
const fetchPhoto = id => ({ type: FETCH_PHOTO, request: { response: { data: { id, title: 'accusamus beatae ad facilis cum similique qui sunt', }, }, },});
const fetchPhotoWhichWillFail = id => ({ type: FETCH_PHOTO_WHICH_WILL_FAIL, request: { error: { status: 404 }, },});Also note, that for mutations you need to pass meta.asMutation: true in your request actions,
so the core library could know whether a request is a query or a mutation. For many drivers
like axios, fetch and graphql it is not usually necessary as the library can deduct
whether something is a query or a mutation by looking at request config, like GET request method
will be typically a query while POST a mutation.
redux-requests