aboutsummaryrefslogtreecommitdiff
path: root/integration/bunjs-only-snippets/websocket.test.js
diff options
context:
space:
mode:
Diffstat (limited to 'integration/bunjs-only-snippets/websocket.test.js')
-rw-r--r--integration/bunjs-only-snippets/websocket.test.js39
1 files changed, 39 insertions, 0 deletions
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;
+ });
+});