mirror of
https://github.com/cloudflare/workers-rs.git
synced 2025-12-08 18:01:59 +00:00
37 lines
912 B
TypeScript
37 lines
912 B
TypeScript
import { describe, expect, test } from "vitest";
|
|
import { MessageEvent } from "miniflare";
|
|
import { mf, mfUrl } from "./mf";
|
|
|
|
describe("websocket", () => {
|
|
test("to echo", async () => {
|
|
const resp = await mf.dispatchFetch(`${mfUrl}websocket`, {
|
|
headers: {
|
|
upgrade: "websocket",
|
|
},
|
|
});
|
|
expect(resp.webSocket).not.toBeNull();
|
|
|
|
const socket = resp.webSocket!;
|
|
socket.accept();
|
|
|
|
let cnt = 0;
|
|
socket.addEventListener("message", function (_event: MessageEvent) {
|
|
cnt++;
|
|
});
|
|
let calledClose = false;
|
|
socket.addEventListener("close", function (_event: CloseEvent) {
|
|
calledClose = true;
|
|
});
|
|
|
|
socket.send("Hello, world!");
|
|
|
|
await new Promise((resolve) => setTimeout(resolve, 500));
|
|
|
|
expect(cnt).toBe(1);
|
|
socket.close();
|
|
|
|
await new Promise(resolve => setTimeout(resolve, 1000));
|
|
expect(calledClose).toBe(true);
|
|
});
|
|
});
|