safe-apps-sdk
Version:
SDK developed to integrate third-party apps with Safe app.
25 lines (20 loc) • 1.07 kB
text/typescript
import { SDKMessageEvent } from './../types/messaging';
import { Methods } from './methods';
import PostMessageCommunicator from './';
import { MessageFormatter } from './messageFormatter';
describe('PostMessageCommunicator', () => {
test('Throws in case of an error response', async () => {
const error = 'Problem processing the request';
const messageHandler = (event: SDKMessageEvent) => {
const requestId = event.data.id;
const response = MessageFormatter.makeErrorResponse(requestId, error, '1.0.0');
window.parent.postMessage(response, '*');
};
window.parent.addEventListener('message', messageHandler);
const communicator = new PostMessageCommunicator();
// @ts-expect-error mock isValidMessage because source check couldn't be passed otherwise, filter out requests
communicator.isValidMessage = (msg) => typeof msg.data.success !== 'undefined';
await expect(communicator.send(Methods.getSafeInfo, undefined)).rejects.toThrow(error);
window.removeEventListener('message', messageHandler);
});
});