aboutsummaryrefslogtreecommitdiff
path: root/test/js/web/websocket/websocket.test.js
diff options
context:
space:
mode:
Diffstat (limited to 'test/js/web/websocket/websocket.test.js')
-rw-r--r--test/js/web/websocket/websocket.test.js60
1 files changed, 60 insertions, 0 deletions
diff --git a/test/js/web/websocket/websocket.test.js b/test/js/web/websocket/websocket.test.js
index 99d60f292..867b86123 100644
--- a/test/js/web/websocket/websocket.test.js
+++ b/test/js/web/websocket/websocket.test.js
@@ -71,6 +71,66 @@ describe("WebSocket", () => {
});
const ws = new WebSocket(`http://${server.hostname}:${server.port}`, {});
});
+ describe("nodebuffer", () => {
+ it("should support 'nodebuffer' binaryType", done => {
+ const server = Bun.serve({
+ port: 0,
+ fetch(req, server) {
+ if (server.upgrade(req)) {
+ return;
+ }
+
+ return new Response();
+ },
+ websocket: {
+ open(ws) {
+ ws.sendBinary(new Uint8Array([1, 2, 3]));
+ },
+ },
+ });
+ const ws = new WebSocket(`http://${server.hostname}:${server.port}`, {});
+ ws.binaryType = "nodebuffer";
+ expect(ws.binaryType).toBe("nodebuffer");
+ Bun.gc(true);
+ ws.onmessage = ({ data }) => {
+ expect(Buffer.isBuffer(data)).toBe(true);
+ expect(data).toEqual(new Uint8Array([1, 2, 3]));
+ server.stop(true);
+ Bun.gc(true);
+ done();
+ };
+ });
+
+ it("should support 'nodebuffer' binaryType when the handler is not immediately provided", done => {
+ var client;
+ const server = Bun.serve({
+ port: 0,
+ fetch(req, server) {
+ if (server.upgrade(req)) {
+ return;
+ }
+
+ return new Response();
+ },
+ websocket: {
+ open(ws) {
+ ws.sendBinary(new Uint8Array([1, 2, 3]));
+ setTimeout(() => {
+ client.onmessage = ({ data }) => {
+ expect(Buffer.isBuffer(data)).toBe(true);
+ expect(data).toEqual(new Uint8Array([1, 2, 3]));
+ server.stop(true);
+ done();
+ };
+ }, 0);
+ },
+ },
+ });
+ client = new WebSocket(`http://${server.hostname}:${server.port}`, {});
+ client.binaryType = "nodebuffer";
+ expect(client.binaryType).toBe("nodebuffer");
+ });
+ });
it("should send and receive messages", async () => {
const ws = new WebSocket(TEST_WEBSOCKET_HOST);