@@ -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" ;
910import fs from "node:fs" ;
1011import {
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+ } )
72101describe ( "simple routes" , { concurrent : true } , ( ) => {
73102 it ( "Parses exactly up to limit" , async ( ) => {
74103 var message = "helloworld" ;
0 commit comments