diff options
author | 2022-10-17 06:53:18 -0700 | |
---|---|---|
committer | 2022-10-17 06:53:18 -0700 | |
commit | cdff2697efff88dd4059c41954f4bdd84bd3063c (patch) | |
tree | 6f0dbb3ec34139ca8fb9bf0d90168e962b71dbfe /test/bun.js/websocket-server.test.ts | |
parent | ca02695993a3380a75ff4b19fb45814e184b092a (diff) | |
download | bun-cdff2697efff88dd4059c41954f4bdd84bd3063c.tar.gz bun-cdff2697efff88dd4059c41954f4bdd84bd3063c.tar.zst bun-cdff2697efff88dd4059c41954f4bdd84bd3063c.zip |
Implement `sendText`, `sendBinary`, `publishText`, `publishBinary`
Diffstat (limited to 'test/bun.js/websocket-server.test.ts')
-rw-r--r-- | test/bun.js/websocket-server.test.ts | 116 |
1 files changed, 112 insertions, 4 deletions
diff --git a/test/bun.js/websocket-server.test.ts b/test/bun.js/websocket-server.test.ts index 0e41d3186..dc9321f6a 100644 --- a/test/bun.js/websocket-server.test.ts +++ b/test/bun.js/websocket-server.test.ts @@ -1,8 +1,6 @@ -import { file, serve } from "bun"; -import { afterEach, describe, it, expect } from "bun:test"; -import { readFileSync, writeSync } from "fs"; +import { serve } from "bun"; +import { describe, expect, it } from "bun:test"; import { gcTick } from "gc"; -import { resolve } from "path"; var port = 4321; function getPort() { @@ -220,6 +218,116 @@ describe("websocket server", () => { }); }); + it("publishText()", async () => { + await new Promise((resolve, reject) => { + var server = serve({ + port: getPort(), + websocket: { + async open(ws) { + // we don't care about the data + // we just want to make sure the DOMJIT call doesn't crash + for (let i = 0; i < 40_000; i++) ws.publishText("hello", "world"); + resolve(); + }, + message(ws, msg) {}, + }, + async fetch(req, server) { + await 1; + if (server.upgrade(req)) return; + + return new Response("noooooo hello world"); + }, + }); + + const websocket = new WebSocket(`ws://localhost:${server.port}`); + websocket.onmessage = () => {}; + websocket.onerror = () => {}; + }); + }); + + it("publishBinary()", async () => { + const bytes = Buffer.from("hello"); + await new Promise((resolve, reject) => { + var server = serve({ + port: getPort(), + websocket: { + async open(ws) { + // we don't care about the data + // we just want to make sure the DOMJIT call doesn't crash + for (let i = 0; i < 40_000; i++) ws.publishBinary("hello", bytes); + resolve(); + }, + message(ws, msg) {}, + }, + async fetch(req, server) { + await 1; + if (server.upgrade(req)) return; + + return new Response("noooooo hello world"); + }, + }); + + const websocket = new WebSocket(`ws://localhost:${server.port}`); + websocket.onmessage = () => {}; + websocket.onerror = () => {}; + }); + }); + + it("sendText()", async () => { + await new Promise((resolve, reject) => { + var server = serve({ + port: getPort(), + websocket: { + async open(ws) { + // we don't care about the data + // we just want to make sure the DOMJIT call doesn't crash + for (let i = 0; i < 40_000; i++) ws.sendText("hello world", true); + resolve(); + }, + message(ws, msg) {}, + }, + async fetch(req, server) { + await 1; + if (server.upgrade(req)) return; + + return new Response("noooooo hello world"); + }, + }); + + const websocket = new WebSocket(`ws://localhost:${server.port}`); + websocket.onmessage = () => {}; + websocket.onerror = () => {}; + }); + }); + + it("sendBinary()", async () => { + const bytes = Buffer.from("hello"); + await new Promise((resolve, reject) => { + var server = serve({ + port: getPort(), + websocket: { + async open(ws) { + // we don't care about the data + // we just want to make sure the DOMJIT call doesn't crash + for (let i = 0; i < 40_000; i++) ws.sendBinary(bytes, true); + resolve(); + }, + message(ws, msg) {}, + }, + async fetch(req, server) { + await 1; + if (server.upgrade(req)) return; + + return new Response("noooooo hello world"); + }, + }); + + const websocket = new WebSocket(`ws://localhost:${server.port}`); + websocket.onmessage = () => {}; + websocket.onerror = () => {}; + }); + }); + it("can do hello world corked", async () => { var server = serve({ port: getPort(), |