Newer
Older
import { Button } from '@material-ui/core'
import toJson from 'enzyme-to-json'
import React from 'react'
import { SgeStatusWithAccount } from 'tests/__mocks__/fluidStatusData.mock'
import { createMockEcolyoStore, mockGlobalState } from 'tests/__mocks__/store'
import { waitForComponentToPaint } from 'tests/__mocks__/testUtils'
import SgeInit from './SgeInit'
const mockedNavigate = jest.fn()
jest.mock('react-router-dom', () => ({
...jest.requireActual('react-router-dom'),
useNavigate: () => mockedNavigate,
}))
const mockConnect = jest.fn()
const mockUpdate = jest.fn()
jest.mock('components/Hooks/useKonnectorAuth', () =>
jest.fn(() => [mockConnect, mockUpdate])
)
describe('SgeInit component', () => {
it('should be rendered correctly', () => {
const wrapper = mount(
<Provider store={store}>
</Provider>
)
expect(toJson(wrapper)).toMatchSnapshot()
})
it('should go to sge connect steps', () => {
const wrapper = mount(
<Provider store={store}>
</Provider>
)
wrapper.find(Button).first().simulate('click')
expect(mockedNavigate).toHaveBeenCalled()
})
it('should launch account and trigger creation process', async () => {
sgeConnect: {
...mockGlobalState.sgeConnect,
shouldLaunchAccount: true,
},
},
})
const wrapper = mount(
<Provider store={store}>
</Provider>
)
await waitForComponentToPaint(wrapper)
expect(mockConnect).toHaveBeenCalled()
})
it('should launch existing account update process', async () => {
...mockGlobalState,
fluidStatus: [SgeStatusWithAccount],
sgeConnect: {
...mockGlobalState.sgeConnect,
shouldLaunchAccount: true,
},
},
})
const wrapper = mount(
<Provider store={store}>
</Provider>
)
await waitForComponentToPaint(wrapper)
expect(mockUpdate).toHaveBeenCalled()
})
})