import BridgeFunction from '../../model/bridge/bridgeFunction'; import GetCompassInfo from '../../model/bridge/getCompassInfo'; import { MiniAppCBType } from '../../model/miniAppApi'; import { MiniAppError, MiniAppErrorType } from '../../model/miniAppError'; import { localStorageMock } from '../mock/localStorageMock'; import { BridgeCallbackHandlerMock } from './bridgeCallbackHandlerMock.test'; let call: BridgeFunction; let cbHandler: BridgeCallbackHandlerMock; beforeAll(() => { Object.defineProperty(window, 'localStorage', { value: localStorageMock }); call = new GetCompassInfo(); cbHandler = new BridgeCallbackHandlerMock(); call.cbHandler = cbHandler; }); afterAll(() => { localStorage.clear(); jest.clearAllMocks(); }); afterEach(() => { cbHandler.messages.length = 0; }); test('GetCompassInfo - fail', async () => { await call.execute(null); expect(cbHandler.messages.length).toBe(2); expect(cbHandler.messages[0]).toStrictEqual({ type: MiniAppCBType.fail, payload: new MiniAppError(MiniAppErrorType.noValueFound), }); expect(cbHandler.messages[1]).toStrictEqual({ type: MiniAppCBType.complete }); }); test('GetCompassInfo - success', async () => { localStorage.setItem( 'compassInfo', JSON.stringify({ lat: '12.11', long: '11.2' }) ); await call.execute(null); expect(cbHandler.messages.length).toBe(2); expect(cbHandler.messages[0]).toStrictEqual({ type: MiniAppCBType.success, payload: { result: { lat: '12.11', long: '11.2', }, }, }); expect(cbHandler.messages[1]).toStrictEqual({ type: MiniAppCBType.complete }); });