export const getUserID = jest.fn(() => "moritz") export const getPeerHandle = jest.fn((/*uid*/) => undefined) export const getPeerFootprint = jest.fn((/*uid*/) => Promise.resolve(Date.now())) export const send = jest.fn() export const broadcast = jest.fn() export const terminatePeer = jest.fn() export const destructor = jest.fn(() => eventListeners.clear()) const eventListeners = new Map() export const addEventListener = jest.fn((event, callback) => eventListeners.set(event, callback), ) const addEventListenerMockClear = addEventListener.mockClear addEventListener.mockClear = () => { eventListeners.clear() addEventListenerMockClear() } const MockConnection = jest.fn().mockImplementation((/*options*/) => { setTimeout( () => eventListeners.has("roomJoined") && eventListeners.get("roomJoined")(), 0, ) return { getUserID, getPeerHandle, getPeerFootprint, send, broadcast, terminatePeer, destructor, addEventListener, } }) export default MockConnection