From d1ae1771ebf1056187029e643d1b318fe564cc8f Mon Sep 17 00:00:00 2001 From: Jarred Sumner <709451+Jarred-Sumner@users.noreply.github.com> Date: Wed, 22 Jun 2022 06:49:42 -0700 Subject: Add a simple test for websockets --- integration/bunjs-only-snippets/websocket.test.js | 39 +++++++++++++++++++++++ 1 file changed, 39 insertions(+) create mode 100644 integration/bunjs-only-snippets/websocket.test.js (limited to 'integration/bunjs-only-snippets/websocket.test.js') diff --git a/integration/bunjs-only-snippets/websocket.test.js b/integration/bunjs-only-snippets/websocket.test.js new file mode 100644 index 000000000..37c131591 --- /dev/null +++ b/integration/bunjs-only-snippets/websocket.test.js @@ -0,0 +1,39 @@ +import { describe, it, expect } from "bun:test"; +import { unsafe } from "bun"; + +const TEST_WEBSOCKET_HOST = + process.env.TEST_WEBSOCKET_HOST || "wss://ws.postman-echo.com/raw"; + +describe("WebSocket", () => { + it("should connect", async () => { + const ws = new WebSocket(TEST_WEBSOCKET_HOST); + await new Promise((resolve, reject) => { + ws.onopen = resolve; + ws.onerror = reject; + }); + ws.close(); + }); + + it("should send and receive messages", async () => { + const ws = new WebSocket(TEST_WEBSOCKET_HOST); + await new Promise((resolve, reject) => { + ws.onopen = resolve; + ws.onerror = reject; + ws.onclose = () => { + expect(ws.bufferedAmount).toBe(0); + resolve(); + }; + }); + var promise = new Promise((resolve, reject) => { + ws.onmessage = (event) => { + expect(event.data).toBe("Hello World!"); + ws.close(); + resolve(); + }; + ws.onerror = reject; + }); + ws.send("Hello World"); + + await promise; + }); +}); -- cgit v1.2.3