import React from 'react'
import { Provider } from 'react-redux'
import { mount } from 'enzyme'
import configureStore from 'redux-mock-store'
import { actionTypes } from '../../features/counter'
import Counter from './Counter'
describe('Counter', () => {
const mockStore = configureStore([])
const store = mockStore({
count: {
value: 42,
},
})
// Add jest mock spy to watch for store.dispatch method. See https://jestjs.io/docs/en/jest-object#jestspyonobject-methodname for more info
jest.spyOn(store, 'dispatch')
it('renders without crashing.', () => {
const wrapper = mount(
)
const countValue = wrapper.find('strong').text()
expect(countValue).toBe('42')
})
it('should be possible to increment counter.', () => {
const wrapper = mount(
)
wrapper
.find('button')
.filter({ 'data-qa': 'increment-counter' })
.simulate('click')
expect(store.dispatch).toBeCalledTimes(1)
expect(store.dispatch).toBeCalledWith({
type: actionTypes.INCREMENT_COUNTER,
})
})
it('should be possible to decrement counter.', () => {
const wrapper = mount(
)
wrapper
.find('button')
.filter({ 'data-qa': 'decrement-counter' })
.simulate('click')
expect(store.dispatch).toHaveBeenCalledTimes(1)
expect(store.dispatch).toHaveBeenCalledWith({
type: actionTypes.DECREMENT_COUNTER,
})
})
})