diff options
author | 2022-06-22 21:25:07 -0700 | |
---|---|---|
committer | 2022-06-22 21:25:07 -0700 | |
commit | 9843a9de5346505ebc13ee36b072da92ac30ded5 (patch) | |
tree | 3ea6fa1c2b6e63a505aa0f0444b32657222feab8 /integration/bunjs-only-snippets/websocket.test.js | |
parent | aa97c1da2f01be27fb069ddaabfdf996d773e0ab (diff) | |
download | bun-9843a9de5346505ebc13ee36b072da92ac30ded5.tar.gz bun-9843a9de5346505ebc13ee36b072da92ac30ded5.tar.zst bun-9843a9de5346505ebc13ee36b072da92ac30ded5.zip |
Cleanup some tests
Diffstat (limited to '')
-rw-r--r-- | integration/bunjs-only-snippets/websocket.test.js | 43 |
1 files changed, 40 insertions, 3 deletions
diff --git a/integration/bunjs-only-snippets/websocket.test.js b/integration/bunjs-only-snippets/websocket.test.js index a71f3dc7d..ab825fa63 100644 --- a/integration/bunjs-only-snippets/websocket.test.js +++ b/integration/bunjs-only-snippets/websocket.test.js @@ -1,5 +1,6 @@ import { describe, it, expect } from "bun:test"; import { unsafe } from "bun"; +import { gc } from "./gc"; const TEST_WEBSOCKET_HOST = process.env.TEST_WEBSOCKET_HOST || "wss://ws.postman-echo.com/raw"; @@ -27,16 +28,52 @@ describe("WebSocket", () => { reject("WebSocket closed"); }; }); + const count = 10; + + // 10 messages in burst var promise = new Promise((resolve, reject) => { + var remain = count; ws.onmessage = (event) => { + gc(true); expect(event.data).toBe("Hello World!"); - ws.close(); - resolve(); + remain--; + + if (remain <= 0) { + ws.onmessage = () => {}; + resolve(); + } }; ws.onerror = reject; - ws.send("Hello World!"); }); + for (let i = 0; i < count; i++) { + ws.send("Hello World!"); + gc(true); + } + await promise; + var echo = 0; + + // 10 messages one at a time + function waitForEcho() { + return new Promise((resolve, reject) => { + gc(true); + const msg = `Hello World! ${echo++}`; + ws.onmessage = (event) => { + expect(event.data).toBe(msg); + resolve(); + }; + ws.onerror = reject; + ws.onclose = reject; + ws.send(msg); + gc(true); + }); + } + gc(true); + for (let i = 0; i < count; i++) await waitForEcho(); + ws.onclose = () => {}; + ws.onerror = () => {}; + ws.close(); + gc(true); }); }); |