import MockAdapter from 'axios-mock-adapter'; import React from 'react'; import Login from '../../components/LoginPopup'; import { getClientID } from '../../factory/api'; import { instance, instanceBff } from '../../factory/request'; import { shallow } from '../enzyme'; import linkUserRes from '../mock/api/linkUserRes.mock.json'; import { localStorageMock } from '../mock/localStorageMock'; const mockBff = new MockAdapter(instanceBff); const mockMiniApp = new MockAdapter(instance); describe('Login', () => { let signInRes: any, signInSMSRes: any, tree: any; beforeAll(() => { Object.defineProperty(window, 'localStorage', { value: localStorageMock }); }); afterAll(() => { localStorage.clear(); jest.clearAllMocks(); }); describe('Login with same setup', () => { beforeEach(() => { signInRes = { header: { resultCode: 'S0000', resultMessage: '', }, payload: { accessToken: '9214284d-68d1-4463-9e49-481b00558535', refreshToken: 'e70b6b52-f7e7-48f3-827d-074168c07d6d', }, }; mockBff.onPost('/signIn').reply(200, signInRes); mockMiniApp .onPost(`/v1/users/link?clientId=${getClientID()}`) .reply(200, linkUserRes); mockBff.onPost('/signInWithSms').reply(200, signInRes); tree = shallow(
test
); }); it('should be defined', () => { expect(Login).toBeDefined(); }); it('should render correctly', () => { expect(tree).toMatchSnapshot(); }); it('update username test', () => { tree .find('ForwardRef') .first() .simulate('change', { target: { value: 'userNameTest' } }); expect(tree.find('ForwardRef').first().prop('value')).toEqual( 'userNameTest' ); }); it('update password test', () => { tree .find('ForwardRef') .at(1) .simulate('change', { target: { value: 'passwordTest' } }); expect(tree.find('ForwardRef').at(1).prop('value')).toEqual( 'passwordTest' ); }); /*it('update clientId test', () => { tree .find('ForwardRef') .at(2) .simulate('change', { target: { value: 'clientId' } }); expect(tree.find('ForwardRef').at(2).prop('value')).toEqual('clientId'); }); it('signin with resultcode S0000', () => { tree.find('Button').at(0).simulate('click'); expect(tree.find('ForwardRef').at(3).prop('value')).toEqual('...'); });*/ }); describe('Login with different setup', () => { beforeEach(() => { signInRes = { header: { resultCode: 'S1004', resultMessage: '', }, payload: { accessToken: '9214284d-68d1-4463-9e49-481b00558535', refreshToken: 'e70b6b52-f7e7-48f3-827d-074168c07d6d', }, error: { otpReferenceId: '', }, }; signInSMSRes = { header: { resultCode: 'S0000', resultMessage: '', }, payload: { accessToken: '9214284d-68d1-4463-9e49-481b00558535', refreshToken: 'e70b6b52-f7e7-48f3-827d-074168c07d6d', }, }; mockBff.onPost('/signIn').reply(200, signInRes); mockMiniApp .onPost(`/v1/users/link?clientId=${getClientID()}`) .reply(200, linkUserRes); mockBff.onPost('/signInWithSms').reply(200, signInSMSRes); tree = shallow(
test
); }); /*it('signin with resultcode S1004', async () => { tree.find('Button').at(0).simulate('click'); await new Promise((r) => setTimeout(() => r(), 100)); expect(localStorage.getItem('X-USER-AUTH-ID')).toContain( linkUserRes.unsigned.data.userAuthorizationId ); });*/ it('signin with resultcode S1004', () => { linkUserRes.unsigned.resultInfo.code = 'FAILURE'; mockMiniApp .onPost(`/v1/users/link?clientId=${getClientID()}`) .reply(200, linkUserRes); const tree = shallow(
test
); tree.find('Button').at(0).simulate('click'); expect(true).toBe(true); }); }); });