Async helpers for testing React 15.4.1 components with Enzyme.
Last updated 2 years ago by remyar .
MIT · Repository · Bugs · Original npm · Tarball · package.json
$ cnpm install async-enzyme-react 
SYNC missed versions from official npm registry.


A library to aid in testing async React components and methods using Enzyme.


This library was built with React 15.4.1 and Enzyme 3 in mind. It might work on lower versions as well, but the lib is developed for and tested on those versions.

npm install enzyme-async-helpers-react15.4.1 --save


I recommend checking out the tests to see more examples than the ones below. The lib exposes the following methods:


Signature: (wrapper: EnzymeWrapper, elementSelector: EnzymeSelector, config?: Config) => Promise<void>

Wait for an element to appear. You can use any valid Enzyme selector (a component, CSS selector, etc).

import { waitForElement } from 'enzyme-async-helpers-react15.4.1';

it('should wait for MyComponent to appear', async () => {
    const wrapper = mount(<Wrapper />);
    await waitForElement(wrapper, MyComponent);


Signature: (wrapper: EnzymeWrapper, stateValidationFn: (state: Object) => boolean, config?: Config) => Promise<void>

Wait for your component's state to update to something.

import { waitForState } from 'enzyme-async-helpers-react15.4.1';

it('should wait for loading to stop', async () => {
    const wrapper = mount(<MyComponent />);
    await waitForState(wrapper, state => state.loading === false);


Signature: (wrapper: EnzymeWrapper, propsValidationFn: (props: Object) => boolean, config?: Config) => Promise<void>

Wait for your component's props to update to something.

import { waitForProps } from 'enzyme-async-helpers-react15.4.1';

it('should wait for someProp to be valid', async () => {
    const wrapper = mount(<Wrapper />); // Wrapper renders SomeComponent and passes in props
    const componentWrapper = wrapper.find(SomeComponent);
    await waitForProps(componentWrapper, props => props.someProp === 'test');


All the methods listed above take a third config argument of the following shape:

type Config = {
    interval: number, // Default: 50, how often to check for validity
    timeout: number, // Default: 2000 (2 seconds), how long to wait before timing out
    logStructureOnTimeout?: boolean, // Default: true, logs the wrapper's rendered structure when the wait times out. An attempt to help out in finding what's wrong.
    logStructureOnSuccess?: boolean // Default: false, logs the wrapper's rendered structure on success.

Current Tags

  • 0.0.2                                ...           latest (2 years ago)

1 Versions

  • 0.0.2                                ...           2 years ago
Maintainers (1)
Today 0
This Week 0
This Month 0
Last Day 0
Last Week 0
Last Month 1
Dependencies (2)
Dev Dependencies (9)
Dependents (0)

Copyright 2014 - 2016 © |