window.setImmediate = window.nodeSetImmediate; const getKeysForNumberMap = {}; const messagesSentMap = {}; const fakeCall = () => Promise.resolve(); const fakeAPI = { confirmCode: fakeCall, getAttachment: fakeCall, getAvatar: fakeCall, getDevices: fakeCall, // getKeysForNumber: fakeCall, getMessageSocket: fakeCall, getMyKeys: fakeCall, getProfile: fakeCall, getProvisioningSocket: fakeCall, putAttachment: fakeCall, registerKeys: fakeCall, requestVerificationSMS: fakeCall, requestVerificationVoice: fakeCall, // sendMessages: fakeCall, setSignedPreKey: fakeCall, getKeysForNumber(number) { const res = getKeysForNumberMap[number]; if (res !== undefined) { delete getKeysForNumberMap[number]; return Promise.resolve(res); } throw new Error('getKeysForNumber of unknown/used number'); }, sendMessages(destination, messageArray) { for (let i = 0, max = messageArray.length; i < max; i += 1) { const msg = messageArray[i]; if ( (msg.type !== 1 && msg.type !== 3) || msg.destinationDeviceId === undefined || msg.destinationRegistrationId === undefined || msg.body === undefined || msg.timestamp === undefined || msg.relay !== undefined || msg.destination !== undefined ) throw new Error('Invalid message'); messagesSentMap[ `${destination}.${messageArray[i].destinationDeviceId}` ] = msg; } }, }; window.WebAPI = { connect: () => fakeAPI, };