1.1.2 • Published 8 years ago
@commercetools/jest-enzyme-matchers v1.1.2
@commercetools/jest-enzyme-matchers
Enzyme specific jest matchers
Installation
Add package
npm install @commercetools/jest-enzyme-matchers --save-devAdd
testFrameworkScriptFileSet up a
setupTestFrameworkScriptFile. Create that file and add it to the jest configuration.Add matchers to Jest
In that
testFrameworkScriptFilefile, import the matchers and add them to jestimport * as enzymeMatchers from '@commercetools/jest-enzyme-matchers' expect.extend(enzymeMatchers) // more expect.extend calls for your own matcheres // expect.extend({ /* ... */ })
Usage
toRender(selector)
Passes when at least one element matching the selector is found in the wrapper.
import Icon from 'somewhere'
describe('Component', () => {
const wrapper = shallow(<Component />)
it('should render an Icon', () => {
expect(wrapper).toRender(Icon)
})
it('should render a Button', () => {
expect(wrapper).toRender('Button')
})
})toRenderElementTimes(selector, times)
Passes when the number of elements matching the selector found in the wrapper matches times exactly.
import Icon from 'somewhere'
describe('Component', () => {
const wrapper = shallow(<Component />)
it('should render one Icon', () => {
expect(wrapper).toRenderElementTimes(Icon, 1)
})
it('should render two Buttons', () => {
expect(wrapper).toRenderElementTimes('Button', 2)
})
})toContainClass(className)
Passes when the className is present on the wrapper passed to expect.
describe('Component', () => {
const wrapper = shallow(<Component />)
it('should add the class name', () => {
expect(wrapper).toContainClass('foo')
})
it('should not add the class name', () => {
expect(wrapper).not.toContainClass('bar')
})
})