Skip to content
Snippets Groups Projects
ActionCard.spec.tsx 1.51 KiB
import { Button } from '@material-ui/core'
import EcogestureModal from 'components/Ecogesture/EcogestureModal/EcogestureModal'
import { mount } from 'enzyme'
import toJson from 'enzyme-to-json'
import React from 'react'
import { Provider } from 'react-redux'
import { defaultEcogestureData } from 'tests/__mocks__/actionData.mock'
import { createMockEcolyoStore } from 'tests/__mocks__/store'
import { waitForComponentToPaint } from 'tests/__mocks__/testUtils'
import { userChallengeData } from 'tests/__mocks__/userChallengeData.mock'
import ActionCard from './ActionCard'

describe('ActionCard component', () => {
  const store = createMockEcolyoStore({
    challenge: {
      currentChallenge: userChallengeData[1],
    },
  })
  it('should be rendered correctly', async () => {
    const wrapper = mount(
      <Provider store={store}>
        <ActionCard
          setShowList={jest.fn()}
          setSelectedAction={jest.fn()}
          action={defaultEcogestureData[1]}
        />
      </Provider>
    )
    await waitForComponentToPaint(wrapper)
    expect(toJson(wrapper)).toMatchSnapshot()
  })
  it('should open modal', async () => {
    const wrapper = mount(
      <Provider store={store}>
        <ActionCard
          setShowList={jest.fn()}
          setSelectedAction={jest.fn()}
          action={defaultEcogestureData[1]}
        />
      </Provider>
    )
    await waitForComponentToPaint(wrapper)
    wrapper.find(Button).first().simulate('click')
    expect(wrapper.find(EcogestureModal).exists()).toBeTruthy()
  })
})