Skip to content

Commit d82a6f6

Browse files
committed
Added tests to ensure that WS utilities actually work
1 parent 0b65cac commit d82a6f6

1 file changed

Lines changed: 30 additions & 1 deletion

File tree

tests/main.test.ts

Lines changed: 30 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,9 +6,11 @@ import {
66
us_listen_socket_close,
77
us_socket_local_port,
88
} from "uWebSockets.js";
9+
import {encodeWSMessage, preParseWSMessage} from "../mjs/ws.mjs";
910
import fs from "node:fs";
1011
import {
1112
checkContentLength,
13+
closure,
1214
registerAbort,
1315
type HttpRequest,
1416
type HttpResponse,
@@ -68,7 +70,34 @@ server.trace("/simple", parseFN).post("/multi-memory", async (res, req) => {
6870
}
6971
});
7072
//#endregion
71-
73+
describe("websocket utilities", ()=>{
74+
it("encodes and decodes to the same string", ()=>{
75+
var message = "Hello World!"
76+
var event = "sample event"
77+
expect(
78+
closure(() => {
79+
var result = preParseWSMessage(
80+
encodeWSMessage(event, new TextEncoder().encode(message))
81+
)
82+
result.message = new TextDecoder().decode(result.message) as any
83+
return result;
84+
})
85+
).toEqual({event, message})
86+
})
87+
it("encodes and decodes multi-language messages", ()=>{
88+
var message = "Hello Привіт السلام عليكم 你好"
89+
var event = "multi-language event"
90+
expect(
91+
closure(() => {
92+
var result = preParseWSMessage(
93+
encodeWSMessage(event, new TextEncoder().encode(message))
94+
)
95+
result.message = new TextDecoder().decode(result.message) as any
96+
return result;
97+
})
98+
).toEqual({event, message})
99+
})
100+
})
72101
describe("simple routes", { concurrent: true }, () => {
73102
it("Parses exactly up to limit", async () => {
74103
var message = "helloworld";

0 commit comments

Comments
 (0)