(url)
| 18 | } |
| 19 | |
| 20 | function createWebSocket(url) { |
| 21 | const socket = new WebSocket(url); |
| 22 | socket._eventBuffer = {}; |
| 23 | socket._pendingPromises = {}; |
| 24 | |
| 25 | for (const eventType of ["open", "close", "message"]) { |
| 26 | socket._eventBuffer[eventType] = []; |
| 27 | socket._pendingPromises[eventType] = []; |
| 28 | |
| 29 | socket.addEventListener(eventType, (event) => { |
| 30 | if (socket._pendingPromises[eventType].length) { |
| 31 | socket._pendingPromises[eventType].shift()(event); |
| 32 | } else { |
| 33 | socket._eventBuffer[eventType].push(event); |
| 34 | } |
| 35 | }); |
| 36 | } |
| 37 | |
| 38 | return socket; |
| 39 | } |
| 40 | |
| 41 | function waitFor(socket, eventType) { |
| 42 | if (socket._eventBuffer[eventType].length) { |
no outgoing calls
no test coverage detected