aboutsummaryrefslogtreecommitdiff
path: root/test/bun.js/websocket-server.test.ts
diff options
context:
space:
mode:
authorGravatar Jarred Sumner <709451+Jarred-Sumner@users.noreply.github.com> 2022-11-09 23:54:56 -0800
committerGravatar Jarred Sumner <709451+Jarred-Sumner@users.noreply.github.com> 2022-11-09 23:54:56 -0800
commit8753c483ff3e23929048eedeb4047b0b0aef281d (patch)
treec951d19cca6e9bab358c4c8095e8902d36b8c280 /test/bun.js/websocket-server.test.ts
parent2149e1f0a095d5a4854f0ec7a2b638a3146e388f (diff)
downloadbun-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/websocket-server.test.ts')
-rw-r--r--test/bun.js/websocket-server.test.ts36
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 () => {