Popularity
1.6
Stable
Activity
0.0
Stable
181
4
13

Programming language: JavaScript
License: MIT License
Tags: Dev Tools     Test     Redux     React     Testing     Ava    

redux-ava alternatives and similar libraries

Based on the "Test" category.
Alternatively, view redux-ava alternatives based on common mentions on social networks and blogs.

Do you think we are missing an alternative of redux-ava or a related project?

Add another 'Test' Library

README

redux-ava

Write AVA tests for redux pretty quickly

Build Status

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 run.

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 run.

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'

// Without parameter
test('openMenu action', actionTest(openMenu, {type: 'OPEN_MENU'}))

// With single parameter
test('getUser action', actionTest(getUser, 1, {type: 'GET_USER', id: 1}))

// With multiple parameters
test('showArtist action', actionTest(
  showArtist, 'bob-dylan', 'Bob Dylan',
  {type: 'SHOW_ARTIST', slug: 'bob-dylan', name: 'Bob Dylan'}
))

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


*Note that all licence references and agreements mentioned in the redux-ava README section above are relevant to that project's source code only.