jest-redux
TypeScript icon, indicating that this package has built-in type declarations

1.0.0 • Public • Published

jest-redux

Jest matchers for testing redux easier and more declaritive.

Build Status GitHub Greenkeeper badge

Table of Contents

Getting start

Installation

 
yarn add --dev jest-redux
 

or

 
npm install --save-dev jest-redux
 

Setup

Via setupTestFrameworkScriptFile config

Add jest-redux to your Jest setupTestFrameworkScriptFile configuration

"jest"{
  "setupTestFrameworkScriptFile": "jest-redux"
}

Via setupTest script

Require jest-redux from setupTest script

// ./setupTest.js
 
require('jest-redux');

Then add this config

"jest"{
  "setupTestFrameworkScriptFile": "./setupTest.js"
}

Usage

Test your standart redux actions and reducers with one of the jest-redux matchers.

 
const initialState = { number: 0 };
 
function reducer(state = initialState, action) {
 switch(action.type) {
   case "ADD":
    return state.number + action.payload;
   case "REMOVE":
    return state.number + action.payload;
   default:
     return state;
 }
}
 
const add = (number) => ({ type: "ADD", payload: number });
const remove = (number) => ({ type: "REMOVE", payload: number });
 
 
expect(reducer).toHaveInitialState(initialState); // Passes tests
 
const readyActions = {
  add: () => add(1),
  remove: () => remove(1),
};
 
expect(reducer).toHandleActions(readyActions); // Passes tests

API Reference

toHandleActions(reducer, actions)

Checks reducer to handle given action creators. Compares snpashots of returned reducer result for given actions.

Passed actions should not expect arguments as following:

const actions = {
 increment: () => ({ type: "INC", payload: 1 })
};

If you have actions that receives arguments you can wrap them into function and pass to toMatchActionSnapshot.

 
const add = (number) => ({ type: "ADD", payload: number });
 
const actions = {
 add: () => add(1)
};

Example

expect(reducer).toHandleActions(actions);

toHaveInitialState(reducer, initialState)

Checks reducer against given intitialState.

Example

expect(reducer).toHaveInitialState(initialState);

toMatchActionSnapshot(actions)

Checks given action creators to match with previous snapshot.

Passed actions should not expect arguments as following:

const actions = {
 increment: () => ({ type: "INC", payload: 1 })
};

If you have actions that receives arguments you can wrap them into function and pass to toMatchActionSnapshot.

 
const add = (number) => ({ type: "ADD", payload: number });
 
const actions = {
 add: () => add(1)
};

Example

expect(actionCreators).toMatchActionSnapshot();

License

MIT

Package Sidebar

Install

npm i jest-redux

Weekly Downloads

1

Version

1.0.0

License

ISC

Unpacked Size

209 kB

Total Files

28

Last publish

Collaborators

  • doniyor2109