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

    Install

    npm i jest-redux

    DownloadsWeekly Downloads

    19

    Version

    1.0.0

    License

    ISC

    Unpacked Size

    209 kB

    Total Files

    28

    Last publish

    Collaborators

    • doniyor2109