import axios from 'axios'; import MockAdapter from 'axios-mock-adapter'; import BridgeFunction from '../../model/bridge/bridgeFunction'; import GenerateCodeImage from '../../model/bridge/generateCodeImage'; import { MiniAppCBType } from '../../model/miniAppApi'; import { MiniAppError, MiniAppErrorType } from '../../model/miniAppError'; import { BridgeCallbackHandlerMock } from './bridgeCallbackHandlerMock.test'; var mock = new MockAdapter(axios); let call: BridgeFunction; let cbHandler: BridgeCallbackHandlerMock; beforeAll(() => { call = new GenerateCodeImage(); cbHandler = new BridgeCallbackHandlerMock(); call.cbHandler = cbHandler; }); afterEach(() => { cbHandler.messages.length = 0; }); test('GenerateCodeImage - success', async () => { mock.onGet('/generateqrcode').reply(200, {}); await call.execute({ type: 'qrcode' }); expect(cbHandler.messages.length).toBe(2); expect(cbHandler.messages[0]).toStrictEqual({ type: MiniAppCBType.success, payload: {}, }); expect(cbHandler.messages[1]).toStrictEqual({ type: MiniAppCBType.complete }); }); test('GenerateCodeImage - fail with insufficient param', async () => { mock.onGet('/generateqrcode').reply(200, null); await call.execute({ type: 'qrcode' }); expect(cbHandler.messages.length).toBe(2); expect(cbHandler.messages[0]).toStrictEqual({ type: MiniAppCBType.fail, payload: new MiniAppError(MiniAppErrorType.badRequestInsufficientParameter), }); expect(cbHandler.messages[1]).toStrictEqual({ type: MiniAppCBType.complete }); }); test('GenerateCodeImage - failure invalidJSAPIParams error', async () => { mock.onGet('/generateqrcode').reply(200, {}); await call.execute({}); expect(cbHandler.messages.length).toBe(2); expect(cbHandler.messages[0]).toStrictEqual({ type: MiniAppCBType.fail, payload: new MiniAppError(MiniAppErrorType.invalidJSAPIParams), }); expect(cbHandler.messages[1]).toStrictEqual({ type: MiniAppCBType.complete }); });