import * as api from '../../factory/api'; import BridgeFunction from '../../model/bridge/bridgeFunction'; import GetPermissionStatus from '../../model/bridge/getPermissionStatus'; import { MiniAppCBType } from '../../model/miniAppApi'; import { BridgeCallbackHandlerMock } from './bridgeCallbackHandlerMock.test'; jest.mock('./../../factory/api'); let call: BridgeFunction; let cbHandler: BridgeCallbackHandlerMock; beforeAll(() => { call = new GetPermissionStatus(); cbHandler = new BridgeCallbackHandlerMock(); call.cbHandler = cbHandler; jest.spyOn(api, 'getUserGrantedPermission').mockReturnValue( Promise.resolve({ data: { unsigned: { data: { scopes: ['name'] } } }, }) ); }); afterEach(() => { cbHandler.messages.length = 0; }); test('GetPermissionStatus - success', async () => { await call.execute(null); expect(cbHandler.messages.length).toBe(2); expect(cbHandler.messages[0]).toStrictEqual({ type: MiniAppCBType.success, payload: { granted_permissions: undefined }, }); expect(cbHandler.messages[1]).toStrictEqual({ type: MiniAppCBType.complete }); }); xtest('GetPermissionStatus -status granted', async () => { await call.execute({ name: 'name' }); expect(cbHandler.messages.length).toBe(2); expect(cbHandler.messages[0]).toStrictEqual({ type: MiniAppCBType.success, payload: { status: 'GRANTED' }, }); expect(cbHandler.messages[1]).toStrictEqual({ type: MiniAppCBType.complete }); }); test('GetPermissionStatus -status denied', async () => { await call.execute({ name: 'abc' }); expect(cbHandler.messages.length).toBe(2); expect(cbHandler.messages[0]).toStrictEqual({ type: MiniAppCBType.success, payload: { status: 'DENIED' }, }); expect(cbHandler.messages[1]).toStrictEqual({ type: MiniAppCBType.complete }); });