React Router (v4)

Introduction

This plugin sets up the context required for react-router (v4) and exposes a history instance so that tests can manipulate the URL. With this plugin enabled, it is possible to mount all react-router components in your test, including <Link />, <Route />, etc.

Installation

  1. Setup required peer dependencies: enzyme, react, react-router v4, and react-test-renderer.

  2. Install via yarn or npm

    $> yarn add -D enzyme-context enzyme-context-react-router-4
  3. Add to plugins:

    import { createMount, createShallow } from 'enzyme-context';
    import { routerContext } from 'enzyme-context-react-router-4';
    
    const plugins = {
      history: routerContext(),
    };
    
    export const mount = createMount(plugins);
    export const shallow = createShallow(plugins);

Usage

After adding the plugin to your mount/shallow, it can be used in your tests like so:

Configuration API

routerContext() => EnzymePlugin

Returns

EnzymePlugin: The plugin which can be passed to createMount/createShallow.

Example:

Mount/Shallow API

This plugin also allows some configuration to be passed at mount-time:

  1. routerConfig (Object [optional]): any of the configuration options of history's createMemoryHistory(). For example, we can set the URL before our component mounts like so:

Last updated

Was this helpful?