Newer
Older
import { SgeStep } from 'enums'
import toJson from 'enzyme-to-json'
import React from 'react'
import { createMockEcolyoStore, mockGlobalState } from 'tests/__mocks__/store'
import SgeConnectView from './SgeConnectView'
jest.mock('components/Content/Content', () => 'mock-content')
jest.mock('components/Header/CozyBar', () => 'mock-cozybar')
const mockAppDispatch = jest.spyOn(storeHooks, 'useAppDispatch')
describe('SgeConnectView component', () => {
beforeEach(() => {
})
it('should be rendered correctly', () => {
const wrapper = mount(
<Provider store={store}>
<SgeConnectView />
</Provider>
)
expect(toJson(wrapper)).toMatchSnapshot()
})
it('should render address Step', () => {
const store = createMockEcolyoStore({
global: {
sgeConnect: {
...mockGlobalState.sgeConnect,
currentStep: SgeStep.Address,
},
},
})
const wrapper = mount(
<Provider store={store}>
<SgeConnectView />
</Provider>
)
expect(wrapper.find('.stepAddress')).toBeTruthy()
})
it('should render identity Step', () => {
const store = createMockEcolyoStore({
global: {
sgeConnect: {
...mockGlobalState.sgeConnect,
currentStep: SgeStep.IdentityAndPDL,
},
},
})
const wrapper = mount(
<Provider store={store}>
<SgeConnectView />
</Provider>
)
expect(wrapper.find('.stepIdentity')).toBeTruthy()
})
it('should render consent Step', () => {
const store = createMockEcolyoStore({
global: {
sgeConnect: {
...mockGlobalState.sgeConnect,
currentStep: SgeStep.Consent,
},
},
})
const wrapper = mount(
<Provider store={store}>
<SgeConnectView />
</Provider>
)
expect(wrapper.find('.stepConsent')).toBeTruthy()
})
it('should render default Step', () => {
const store = createMockEcolyoStore({
global: {
sgeConnect: {
...mockGlobalState.sgeConnect,
currentStep: 99,
},
},
})
const wrapper = mount(
<Provider store={store}>
<SgeConnectView />
</Provider>
)
expect(wrapper.find('.stepIdentity')).toBeTruthy()
})
describe('SgeConnectView Navigation methods', () => {
it('should call nextStep method', () => {
const wrapper = mount(
<Provider store={store}>
<SgeConnectView />
</Provider>
)
wrapper.find('.profile-navigation-button').last().simulate('click')
expect(mockAppDispatch).toHaveBeenCalled()
it('should not call disabled nextStep method', () => {
const wrapper = mount(
<Provider store={store}>
<SgeConnectView />
</Provider>
)
wrapper.find('.profile-navigation-button').last().simulate('click')
expect(mockAppDispatch).toHaveBeenCalled()