Newer
Older
import { Button } from '@material-ui/core'
import React from 'react'
import UsageEventService from 'services/usageEvent.service'
import * as challengeActions from 'store/challenge/challenge.slice'
import { createMockEcolyoStore } from 'tests/__mocks__/store'
import { waitForComponentToPaint } from 'tests/__mocks__/testUtils'
import { userChallengeData } from 'tests/__mocks__/userChallengeData.mock'
jest.mock('cozy-ui/transpiled/react/I18n', () => ({
useI18n: jest.fn(() => ({
t: (str: string) => str,
})),
}))
jest.mock('services/usageEvent.service')
const mockAddEvent = jest.fn()
UsageEventService.addEvent = mockAddEvent
const mockedNavigate = jest.fn()
jest.mock('react-router-dom', () => ({
...jest.requireActual('react-router-dom'),
useNavigate: () => mockedNavigate,
const mockupdateUserChallenge = jest.fn()
jest.mock('services/challenge.service', () => {
return jest.fn(() => {
return {
updateUserChallenge: mockupdateUserChallenge,
}
})
})
it('should be rendered correctly', async () => {
const wrapper = mount(
<Provider store={store}>
<ActionDone currentChallenge={userChallengeData[1]} />
</Provider>
)
await waitForComponentToPaint(wrapper)
expect(toJson(wrapper)).toMatchSnapshot()
})
it('should click on button and update action to done', async () => {
const updateChallengeSpy = jest.spyOn(
challengeActions,
'updateUserChallengeList'
)
mockupdateUserChallenge.mockResolvedValueOnce(userChallengeData[1])
const wrapper = mount(
<Provider store={store}>
<ActionDone currentChallenge={userChallengeData[1]} />
</Provider>
)
wrapper.find(Button).first().simulate('click')