/karma-enzyme

Simple configuration and usage of Enzyme 3 with Karma.

Primary LanguageJavaScriptMIT LicenseMIT

Karma-Enzyme

Simple configuration and usage of Enzyme 3 with the Karma test suite.

Karma-Enzyme automatically includes pre-configured Enzyme methods in Karma test suite, enabling you to easily configure Enzyme 3 with multiple versions of React.

Requirements

This package requires that your Karma test suite is being run in Webpack.

Configuration Options

There is a npm package for each available enzyme-react adapter:

karma-enzyme package Enzyme Adapter Package React semver compatibility
karma-enzyme-react-16 enzyme-adapter-react-16 ^16.0.0
karma-enzyme-react-15 enzyme-adapter-react-15 ^15.5.0
karma-enzyme-react-15.4 enzyme-adapter-react-15.4 15.0.0-0 - 15.4.x
karma-enzyme-react-14 enzyme-adapter-react-14 ^0.14.0
karma-enzyme-react-13 enzyme-adapter-react-13 ^0.13.0

Installation

* Example uses karma-enzyme-react-16 as an example. Use the correct package for your desired configuration.

Install it with npm install karma-enzyme-react-16 --save-dev.

Add enzyme-react-16 to the frameworks key and karma-enzyme-react-16 to the plugins key in your Karma configuration:

frameworks = ['enzyme-react-16'];
plugins = ['karma-enzyme-react-16'];

Usage

Enzyme will be configured using the appropriate adapter and each of the different Enzyme methods are available in the tests:

import React from 'react'
import MyComponent from 'path/to/MyComponent'

describe('MyComponent', () => {
  it('renders', () => {
    shallow(<MyComponent />)
    mount(<MyComponent />)
    render(<MyComponent />)
  })
})

The entire enzyme api is also available as Enzyme:

import React from 'react'
import MyComponent from 'path/to/MyComponent'

describe('MyComponent', () => {
  it('renders', () => {
    Enzyme.shallow(<MyComponent />)
    Enzyme.mount(<MyComponent />)
    Enzyme.render(<MyComponent />)
  })
})

License

The MIT License (MIT)