Skip to content
Snippets Groups Projects
UnSubscribe.spec.tsx 1.53 KiB
Newer Older
  • Learn to ignore specific revisions
  • Guilhem CARRON's avatar
    Guilhem CARRON committed
    import React from 'react'
    import { mount } from 'enzyme'
    import { Provider } from 'react-redux'
    import {
      createMockStore,
      mockInitialEcolyoState,
    } from '../../../tests/__mocks__/store'
    import * as profileActions from 'store/profile/profile.actions'
    import UnSubscribe from './UnSubscribe'
    import { Button } from '@material-ui/core'
    
    jest.mock('cozy-ui/transpiled/react/I18n', () => {
      return {
        useI18n: jest.fn(() => {
          return {
            t: (str: string) => str,
          }
        }),
      }
    })
    
    const mockUpdateProfile = jest.fn()
    jest.mock('services/profile.service', () => {
      return jest.fn(() => {
        return {
          updateProfile: mockUpdateProfile,
        }
      })
    })
    // const useDispatchSpy = jest.spyOn(reactRedux, 'useDispatch')
    const updateProfileSpy = jest.spyOn(profileActions, 'updateProfile')
    
    describe('UnSubscribe component', () => {
      // eslint-disable-next-line @typescript-eslint/no-explicit-any
      let store: any
      beforeEach(() => {
        store = createMockStore(mockInitialEcolyoState)
        updateProfileSpy.mockClear()
      })
    
      it('should be rendered correctly', () => {
        const wrapper = mount(
          <Provider store={store}>
            <UnSubscribe />
          </Provider>
        ).getElement()
        expect(wrapper).toMatchSnapshot()
      })
    
      it('should click on button and deactivate report', () => {
        const wrapper = mount(
          <Provider store={store}>
            <UnSubscribe />
          </Provider>
        )
        wrapper.find(Button).simulate('click')
        expect(updateProfileSpy).toHaveBeenCalledWith({
          sendAnalysisNotification: false,
        })
      })
    })