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-10-17 06:53:18 -0700
committerGravatar Jarred Sumner <709451+Jarred-Sumner@users.noreply.github.com> 2022-10-17 06:53:18 -0700
commitcdff2697efff88dd4059c41954f4bdd84bd3063c (patch)
tree6f0dbb3ec34139ca8fb9bf0d90168e962b71dbfe /test/bun.js/websocket-server.test.ts
parentca02695993a3380a75ff4b19fb45814e184b092a (diff)
downloadbun-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.ts116
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(),