redux-ava 0,0 editorconfig travis-ci npm

Write AVA tests for redux pretty quickly

2 years after

redux-ava

Write AVA tests for redux pretty quickly

Build Status

Note: Tests that use this module and fail will not have power-assert enhancements. This is a current AVA issue, but it'll be fixed in the future.

Install

npm install --save-dev redux-ava

API

actionTest(actionCreator, data, type, [description])

actionCreator

Type: function

The action creator you want to test

data

Type: anything or null

The data your action creator function takes in. If it doesn't take any data, use null.

type

Type: object

The type you expect your action creator to return.

description

Type: string

Optional test description.

reducerTest(reducer, stateBefore, action, stateAfter, [description])

reducer

Type: function

The reducer you want to test.

stateBefore

Type: object

The state you expect before the reducer is ran.

action

Type: object

The action you want to give to the reducer. This is different from actionTest in that you pass an action object, not an action creator function. You may use a call to your action creator function as an argument provided it returns an action object. See the examples below.

stateAfter

Type: object

The state you expect after the reducer is ran.

description

Type: string

Optional test description.

Examples

This is an AVA port of tape-redux. For more documentation, check there.

Let's test an action creator:

import test from 'ava'
import {actionTest} from 'redux-ava'

import {openMenu, getUser} from '../actions'

test('openMenu action', actionTest(openMenu, null, {type: 'OPEN_MENU'}))
test('getUser action', actionTest(getUser, 1, {type: 'GET_USER', id: 1}))

And now a reducer:

import test from 'ava'
import {reducerTest} from 'redux-ava'

import app from '../reducers'
import {openMenu, getUser} from '../actions'

test('app reducer handles openMenu', reducerTest(
  app,
  {menuOpen: false, user: null},
  openMenu(),
  {menuOpen: true, user: null}
))

test('app reducer handles getUser', reducerTest(
  app,
  {menuOpen: false, user: null},
  getUser(1),
  {menuOpen: false, user: 1}
))

License

MIT © Juan Soto

Related Repositories

awesome-react-components

awesome-react-components

Catalog of React Components & Libraries ...

awesome-redux

awesome-redux

Awesome list of Redux examples and middlewares ...

redux-test-recorder

redux-test-recorder

a redux middleware to automatically generate tests for reducers through ui inter ...

awesome-ava

awesome-ava

Awesome AVA resources ...

soundcloud-redux

soundcloud-redux

SoundCloud API client with React • Redux • Redux-Saga ...


Top Contributors

sotojuan greenkeeperio-bot Apercu

Dependencies

package version
deep-freeze 0.0.1
immutable ^3.8.1
dev ava ^0.19.1
snazzy *
standard ^10.0.0

Releases

-   v2.1.0 zip tar
-   v2.0.0 zip tar
-   v1.1.0 zip tar
-   v1.0.0 zip tar