From ffb4c0bf563a09903b0bca5ccc5483bed1522aba Mon Sep 17 00:00:00 2001 From: Pierre Ossman Date: Thu, 29 Aug 2024 16:51:16 +0200 Subject: [PATCH] Let fake WebSocket handle large sends Dynamically grow the recorded send buffer if the test needs to send a lot of data. --- tests/fake.websocket.js | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/tests/fake.websocket.js b/tests/fake.websocket.js index d273fe07..f1b30713 100644 --- a/tests/fake.websocket.js +++ b/tests/fake.websocket.js @@ -37,6 +37,15 @@ export default class FakeWebSocket { } else { data = new Uint8Array(data); } + if (this.bufferedAmount + data.length > this._sendQueue.length) { + let newlen = this._sendQueue.length; + while (this.bufferedAmount + data.length > newlen) { + newlen *= 2; + } + let newbuf = new Uint8Array(newlen); + newbuf.set(this._sendQueue); + this._sendQueue = newbuf; + } this._sendQueue.set(data, this.bufferedAmount); this.bufferedAmount += data.length; }