test(ci): stabilize mattermost websocket retry test

This commit is contained in:
Peter Steinberger 2026-04-03 20:54:57 +01:00
parent d44af743db
commit 3e0ddaf5bc
No known key found for this signature in database
1 changed files with 1 additions and 10 deletions

View File

@ -107,12 +107,10 @@ describe("mattermost websocket monitor", () => {
});
it("retries when first attempt errors before open and next attempt succeeds", async () => {
const abort = new AbortController();
const reconnectDelays: number[] = [];
const onError = vi.fn();
const patches: Array<Record<string, unknown>> = [];
const sockets: FakeWebSocket[] = [];
let disconnects = 0;
const connectOnce = createMattermostConnectOnce({
wsUrl: "wss://example.invalid/api/v4/websocket",
@ -123,15 +121,8 @@ describe("mattermost websocket monitor", () => {
return () => seq++;
})(),
onPosted: async () => {},
abortSignal: abort.signal,
statusSink: (patch) => {
patches.push(patch as Record<string, unknown>);
if (patch.lastDisconnect) {
disconnects++;
if (disconnects >= 2) {
abort.abort();
}
}
},
webSocketFactory: () => {
const socket = new FakeWebSocket();
@ -151,10 +142,10 @@ describe("mattermost websocket monitor", () => {
});
await runWithReconnect(connectOnce, {
abortSignal: abort.signal,
initialDelayMs: 1,
onError,
onReconnect: (delay) => reconnectDelays.push(delay),
shouldReconnect: ({ outcome }) => outcome === "rejected",
});
expect(sockets).toHaveLength(2);