Skip to content
Snippets Groups Projects
Commit b85c70a3 authored by Bastien DUMONT's avatar Bastien DUMONT :angel:
Browse files

test(rtl): konnector

parent a4aad4f1
No related branches found
No related tags found
2 merge requests!10622.7 Release,!1051test(rtl): konnector
import Button from '@material-ui/core/Button' import { render, screen } from '@testing-library/react'
import { mount, shallow } from 'enzyme' import { userEvent } from '@testing-library/user-event'
import { shallow } from 'enzyme'
import React from 'react' import React from 'react'
import ConnectionNotFound from './ConnectionNotFound' import ConnectionNotFound from './ConnectionNotFound'
...@@ -13,12 +14,10 @@ describe('ConnectionNotFound component test', () => { ...@@ -13,12 +14,10 @@ describe('ConnectionNotFound component test', () => {
expect(result).toMatchSnapshot() expect(result).toMatchSnapshot()
}) })
it('should open konnector url when button is clicked', () => { it('should open konnector url when button is clicked', async () => {
global.open = jest.fn() global.open = jest.fn()
render(<ConnectionNotFound konnectorSlug={konnectorSlug} />)
const wrapper = mount(<ConnectionNotFound konnectorSlug={konnectorSlug} />) await userEvent.click(screen.getByRole('button'))
const submitStyledButton = wrapper.find(Button)
submitStyledButton.simulate('click')
expect(global.open).toHaveBeenCalledWith( expect(global.open).toHaveBeenCalledWith(
'http://localhost/#/discover/enedissgegrandlyon', 'http://localhost/#/discover/enedissgegrandlyon',
......
import { Button } from '@material-ui/core' import { render, screen } from '@testing-library/react'
import userEvent from '@testing-library/user-event'
import { FluidType, KonnectorError } from 'enums' import { FluidType, KonnectorError } from 'enums'
import { mount } from 'enzyme' import { mount } from 'enzyme'
import toJson from 'enzyme-to-json' import toJson from 'enzyme-to-json'
import React from 'react' import React from 'react'
import { Provider } from 'react-redux' import { Provider } from 'react-redux'
import { createMockEcolyoStore } from 'tests/__mocks__/store' import { createMockEcolyoStore } from 'tests/__mocks__/store'
import { waitForComponentToPaint } from 'tests/__mocks__/testUtils'
import KonnectorModal from './KonnectorModal' import KonnectorModal from './KonnectorModal'
const mockHandleCloseClick = jest.fn() const mockHandleCloseClick = jest.fn()
...@@ -34,7 +34,7 @@ describe('KonnectorModal component', () => { ...@@ -34,7 +34,7 @@ describe('KonnectorModal component', () => {
expect(toJson(wrapper)).toMatchSnapshot() expect(toJson(wrapper)).toMatchSnapshot()
}) })
it('should be with updating text', () => { it('should be with updating text', () => {
const wrapper = mount( const { baseElement } = render(
<Provider store={store}> <Provider store={store}>
<KonnectorModal <KonnectorModal
open={true} open={true}
...@@ -49,10 +49,12 @@ describe('KonnectorModal component', () => { ...@@ -49,10 +49,12 @@ describe('KonnectorModal component', () => {
/> />
</Provider> </Provider>
) )
expect(wrapper.find('.kmodal-waiting-text').exists()).toBeTruthy() expect(
baseElement.getElementsByClassName('kmodal-waiting-text')[0]
).toBeTruthy()
}) })
it('should be correctly closed', async () => { it('should be correctly closed', async () => {
const wrapper = mount( render(
<Provider store={store}> <Provider store={store}>
<KonnectorModal <KonnectorModal
open={true} open={true}
...@@ -67,11 +69,11 @@ describe('KonnectorModal component', () => { ...@@ -67,11 +69,11 @@ describe('KonnectorModal component', () => {
/> />
</Provider> </Provider>
) )
wrapper.find(Button).simulate('click') await userEvent.click(screen.getByRole('button'))
expect(mockHandleCloseClick).toHaveBeenCalled() expect(mockHandleCloseClick).toHaveBeenCalled()
}) })
it('should render login error', async () => { it('should render login error', async () => {
const wrapper = mount( const { baseElement } = render(
<Provider store={store}> <Provider store={store}>
<KonnectorModal <KonnectorModal
open={true} open={true}
...@@ -86,10 +88,12 @@ describe('KonnectorModal component', () => { ...@@ -86,10 +88,12 @@ describe('KonnectorModal component', () => {
/> />
</Provider> </Provider>
) )
expect(wrapper.find('.kce-picto-txt').exists()).toBeTruthy() expect(
baseElement.getElementsByClassName('kce-picto-txt')[0]
).toBeInTheDocument()
}) })
it('should render unknown error', async () => { it('should render unknown error', async () => {
const wrapper = mount( const { baseElement } = render(
<Provider store={store}> <Provider store={store}>
<KonnectorModal <KonnectorModal
open={true} open={true}
...@@ -104,10 +108,12 @@ describe('KonnectorModal component', () => { ...@@ -104,10 +108,12 @@ describe('KonnectorModal component', () => {
/> />
</Provider> </Provider>
) )
expect(wrapper.find('.err-data-2').exists()).toBeTruthy() expect(
baseElement.getElementsByClassName('err-data-2')[0]
).toBeInTheDocument()
}) })
it('should render update error', async () => { it('should render update error', async () => {
const wrapper = mount( const { baseElement } = render(
<Provider store={store}> <Provider store={store}>
<KonnectorModal <KonnectorModal
open={true} open={true}
...@@ -122,7 +128,8 @@ describe('KonnectorModal component', () => { ...@@ -122,7 +128,8 @@ describe('KonnectorModal component', () => {
/> />
</Provider> </Provider>
) )
await waitForComponentToPaint(wrapper) expect(
expect(wrapper.find('.waiting-text').exists()).toBeTruthy() baseElement.getElementsByClassName('waiting-text')[0]
).toBeInTheDocument()
}) })
}) })
...@@ -266,7 +266,6 @@ const KonnectorModal = ({ ...@@ -266,7 +266,6 @@ const KonnectorModal = ({
error !== KonnectorError.CHALLENGE_ASKED && ( error !== KonnectorError.CHALLENGE_ASKED && (
// DEFAULT CASE // DEFAULT CASE
<div className="konnector-config"> <div className="konnector-config">
{console.log('errortype', error)}
<Icon icon={errorIcon} size={48} /> <Icon icon={errorIcon} size={48} />
<div className="kce-picto-txt text-20-bold"> <div className="kce-picto-txt text-20-bold">
{t('konnector_modal.error_txt')} {t('konnector_modal.error_txt')}
......
import { Button } from '@material-ui/core' import { render, screen } from '@testing-library/react'
import userEvent from '@testing-library/user-event'
import { ERROR_EVENT } from 'cozy-harvest-lib/dist/models/flowEvents' import { ERROR_EVENT } from 'cozy-harvest-lib/dist/models/flowEvents'
import { KonnectorError } from 'enums' import { KonnectorError } from 'enums'
import { mount } from 'enzyme' import { mount } from 'enzyme'
...@@ -7,7 +8,6 @@ import React from 'react' ...@@ -7,7 +8,6 @@ import React from 'react'
import { Provider } from 'react-redux' import { Provider } from 'react-redux'
import { accountsData } from 'tests/__mocks__/accountsData.mock' import { accountsData } from 'tests/__mocks__/accountsData.mock'
import { createMockEcolyoStore } from 'tests/__mocks__/store' import { createMockEcolyoStore } from 'tests/__mocks__/store'
import { waitForComponentToPaint } from 'tests/__mocks__/testUtils'
import KonnectorModalFooter from './KonnectorModalFooter' import KonnectorModalFooter from './KonnectorModalFooter'
const mockedNavigate = jest.fn() const mockedNavigate = jest.fn()
...@@ -40,7 +40,7 @@ describe('KonnectorModalFooter component', () => { ...@@ -40,7 +40,7 @@ describe('KonnectorModalFooter component', () => {
}) })
it('should render "understood" for enedis sge when postal code not supported (USER_ACTION_NEEDED)', () => { it('should render "understood" for enedis sge when postal code not supported (USER_ACTION_NEEDED)', () => {
const wrapper = mount( render(
<Provider store={store}> <Provider store={store}>
<KonnectorModalFooter <KonnectorModalFooter
state={ERROR_EVENT} state={ERROR_EVENT}
...@@ -52,13 +52,13 @@ describe('KonnectorModalFooter component', () => { ...@@ -52,13 +52,13 @@ describe('KonnectorModalFooter component', () => {
/> />
</Provider> </Provider>
) )
expect(wrapper.find(Button).text()).toBe( expect(
'konnector_modal.button_understood' screen.getByText('konnector_modal.button_understood')
) ).toBeInTheDocument()
}) })
it('should render "try again" for enedis sge when address / name / pdl are not matching (LOGIN_FAILED)', () => { it('should render "try again" for enedis sge when address / name / pdl are not matching (LOGIN_FAILED)', () => {
const wrapper = mount( render(
<Provider store={store}> <Provider store={store}>
<KonnectorModalFooter <KonnectorModalFooter
state={ERROR_EVENT} state={ERROR_EVENT}
...@@ -70,11 +70,13 @@ describe('KonnectorModalFooter component', () => { ...@@ -70,11 +70,13 @@ describe('KonnectorModalFooter component', () => {
/> />
</Provider> </Provider>
) )
expect(wrapper.find(Button).text()).toBe('konnector_modal.button_try_again') expect(
screen.getByText('konnector_modal.button_try_again')
).toBeInTheDocument()
}) })
it('should render "later" and "Verify infos" for enedis sge encountering an error on contract (TERMS_VERSION_MISMATCH)', () => { it('should render "later" and "Verify infos" for enedis sge encountering an error on contract (TERMS_VERSION_MISMATCH)', () => {
const wrapper = mount( render(
<Provider store={store}> <Provider store={store}>
<KonnectorModalFooter <KonnectorModalFooter
state={ERROR_EVENT} state={ERROR_EVENT}
...@@ -86,12 +88,12 @@ describe('KonnectorModalFooter component', () => { ...@@ -86,12 +88,12 @@ describe('KonnectorModalFooter component', () => {
/> />
</Provider> </Provider>
) )
expect(wrapper.find(Button).at(0).text()).toBe('Plus tard') expect(screen.getByText('Plus tard')).toBeInTheDocument()
expect(wrapper.find(Button).at(1).text()).toBe('Vérifier les infos') expect(screen.getByText('Vérifier les infos')).toBeInTheDocument()
}) })
it('should close the modal', () => { it('should close the modal', async () => {
const wrapper = mount( render(
<Provider store={store}> <Provider store={store}>
<KonnectorModalFooter <KonnectorModalFooter
state={ERROR_EVENT} state={ERROR_EVENT}
...@@ -103,11 +105,11 @@ describe('KonnectorModalFooter component', () => { ...@@ -103,11 +105,11 @@ describe('KonnectorModalFooter component', () => {
/> />
</Provider> </Provider>
) )
wrapper.find(Button).first().simulate('click') await userEvent.click(screen.getByRole('button'))
expect(mockClose).toHaveBeenCalled() expect(mockClose).toHaveBeenCalled()
}) })
it('should go back to login', async () => { it('should go back to login', async () => {
const wrapper = mount( render(
<Provider store={store}> <Provider store={store}>
<KonnectorModalFooter <KonnectorModalFooter
state={ERROR_EVENT} state={ERROR_EVENT}
...@@ -119,13 +121,12 @@ describe('KonnectorModalFooter component', () => { ...@@ -119,13 +121,12 @@ describe('KonnectorModalFooter component', () => {
/> />
</Provider> </Provider>
) )
wrapper.find(Button).at(1).simulate('click') await userEvent.click(screen.getAllByRole('button')[1])
await waitForComponentToPaint(wrapper)
expect(mockDelete).toHaveBeenCalled() expect(mockDelete).toHaveBeenCalled()
expect(mockedNavigate).toHaveBeenCalledTimes(1) expect(mockedNavigate).toHaveBeenCalledTimes(1)
}) })
it('should reset sge account and go back to login', async () => { it('should reset sge account and go back to login', async () => {
const wrapper = mount( render(
<Provider store={store}> <Provider store={store}>
<KonnectorModalFooter <KonnectorModalFooter
state={ERROR_EVENT} state={ERROR_EVENT}
...@@ -137,13 +138,12 @@ describe('KonnectorModalFooter component', () => { ...@@ -137,13 +138,12 @@ describe('KonnectorModalFooter component', () => {
/> />
</Provider> </Provider>
) )
wrapper.find(Button).at(1).simulate('click') await userEvent.click(screen.getAllByRole('button')[1])
await waitForComponentToPaint(wrapper)
expect(mockDelete).toHaveBeenCalled() expect(mockDelete).toHaveBeenCalled()
expect(mockedNavigate).toHaveBeenCalledTimes(1) expect(mockedNavigate).toHaveBeenCalledTimes(1)
}) })
it('should not reset account if no account', () => { it('should not reset account if no account', async () => {
const wrapper = mount( render(
<Provider store={store}> <Provider store={store}>
<KonnectorModalFooter <KonnectorModalFooter
state={ERROR_EVENT} state={ERROR_EVENT}
...@@ -155,7 +155,7 @@ describe('KonnectorModalFooter component', () => { ...@@ -155,7 +155,7 @@ describe('KonnectorModalFooter component', () => {
/> />
</Provider> </Provider>
) )
wrapper.find(Button).at(1).simulate('click') await userEvent.click(screen.getAllByRole('button')[1])
expect(mockedNavigate).toHaveBeenCalledTimes(1) expect(mockedNavigate).toHaveBeenCalledTimes(1)
expect(mockDelete).toHaveBeenCalledTimes(0) expect(mockDelete).toHaveBeenCalledTimes(0)
}) })
......
import { render, screen } from '@testing-library/react'
import userEvent from '@testing-library/user-event'
import { mount } from 'enzyme' import { mount } from 'enzyme'
import toJson from 'enzyme-to-json' import toJson from 'enzyme-to-json'
import React from 'react' import React from 'react'
...@@ -25,12 +27,12 @@ describe('KonnectorViewerList component', () => { ...@@ -25,12 +27,12 @@ describe('KonnectorViewerList component', () => {
expect(toJson(wrapper)).toMatchSnapshot() expect(toJson(wrapper)).toMatchSnapshot()
}) })
it('should click on card and nav to fluid', async () => { it('should click on card and nav to fluid', async () => {
const wrapper = mount( render(
<Provider store={store}> <Provider store={store}>
<KonnectorViewerList /> <KonnectorViewerList />
</Provider> </Provider>
) )
wrapper.find('.connection-card').first().simulate('click') await userEvent.click(screen.getAllByRole('button')[0])
expect(mockedNavigate).toHaveBeenCalled() expect(mockedNavigate).toHaveBeenCalled()
}) })
}) })
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment