diff options
author | 2022-11-09 23:54:56 -0800 | |
---|---|---|
committer | 2022-11-09 23:54:56 -0800 | |
commit | 8753c483ff3e23929048eedeb4047b0b0aef281d (patch) | |
tree | c951d19cca6e9bab358c4c8095e8902d36b8c280 /test/bun.js | |
parent | 2149e1f0a095d5a4854f0ec7a2b638a3146e388f (diff) | |
download | bun-8753c483ff3e23929048eedeb4047b0b0aef281d.tar.gz bun-8753c483ff3e23929048eedeb4047b0b0aef281d.tar.zst bun-8753c483ff3e23929048eedeb4047b0b0aef281d.zip |
Implement Server.publish()
Fixes https://github.com/oven-sh/bun/issues/1417
Diffstat (limited to 'test/bun.js')
-rw-r--r-- | test/bun.js/websocket-server.test.ts | 36 |
1 files changed, 36 insertions, 0 deletions
diff --git a/test/bun.js/websocket-server.test.ts b/test/bun.js/websocket-server.test.ts index dd88d6707..acc69aa03 100644 --- a/test/bun.js/websocket-server.test.ts +++ b/test/bun.js/websocket-server.test.ts @@ -12,6 +12,42 @@ function getPort() { } describe("websocket server", () => { + it("can do publish()", async (done) => { + var server = serve({ + port: getPort(), + websocket: { + open(ws) { + ws.subscribe("all"); + }, + message(ws, msg) {}, + close(ws) {}, + }, + fetch(req, server) { + if (server.upgrade(req)) { + return; + } + + return new Response("success"); + }, + }); + + await new Promise<WebSocket>((resolve2, reject2) => { + var socket = new WebSocket(`ws://${server.hostname}:${server.port}`); + var clientCounter = 0; + + socket.onmessage = (e) => { + expect(e.data).toBe("hello"); + resolve2(); + }; + socket.onopen = () => { + queueMicrotask(() => { + server.publish("all", "hello"); + }); + }; + }); + server.stop(); + done(); + }); for (let method of ["publish", "publishText", "publishBinary"]) { describe(method, () => { it("in close() should work", async () => { |