import axios from 'axios'; import MockAdapter from 'axios-mock-adapter'; import BridgeFunction from '../../model/bridge/bridgeFunction'; import DownloadFile from '../../model/bridge/downloadFile'; import { MiniAppCBType } from '../../model/miniAppApi'; import { BridgeCallbackHandlerMock } from './bridgeCallbackHandlerMock.test'; var mock = new MockAdapter(axios); let call: BridgeFunction; let cbHandler: BridgeCallbackHandlerMock; beforeAll(() => { call = new DownloadFile(); cbHandler = new BridgeCallbackHandlerMock(); call.cbHandler = cbHandler; }); afterEach(() => { cbHandler.messages.length = 0; }); test('DownloadFile - success', async () => { mock.onGet('/downloadfile').reply(200, {}); await call.execute( { url: 'http://eats.uber.com/path/index.html', filePath: 'images' }, ['eats.uber.com'] ); expect(cbHandler.messages.length).toBe(2); expect(cbHandler.messages[0]).toStrictEqual({ type: MiniAppCBType.success, payload: {}, }); expect(cbHandler.messages[1]).toStrictEqual({ type: MiniAppCBType.complete }); }); test('DownloadFile - fail', async () => { mock.onGet('/downloadfile').reply(200, null); await call.execute({ url: 'url' }, []); expect(cbHandler.messages.length).toBe(2); expect(cbHandler.messages[0].type).toStrictEqual(MiniAppCBType.fail); expect(cbHandler.messages[1]).toStrictEqual({ type: MiniAppCBType.complete }); });