From aeeb0474c6e9d7b23d8000eab8d2f2f6784b5d91 Mon Sep 17 00:00:00 2001 From: bmendonca3 <208517100+bmendonca3@users.noreply.github.com> Date: Fri, 27 Feb 2026 12:20:54 -0700 Subject: [PATCH] test(synology-chat): match request destroy typing --- .../synology-chat/src/webhook-handler.test.ts | 35 ++++++++++++++++--- 1 file changed, 31 insertions(+), 4 deletions(-) diff --git a/extensions/synology-chat/src/webhook-handler.test.ts b/extensions/synology-chat/src/webhook-handler.test.ts index 69ce8e6f7..8dbe4dbba 100644 --- a/extensions/synology-chat/src/webhook-handler.test.ts +++ b/extensions/synology-chat/src/webhook-handler.test.ts @@ -32,21 +32,48 @@ function makeAccount( }; } -function makeStalledReq(method: string): IncomingMessage { +function makeReq(method: string, body: string): IncomingMessage { const req = new EventEmitter() as IncomingMessage & { destroyed: boolean; - destroy: () => void; }; req.method = method; req.headers = {}; req.socket = { remoteAddress: "127.0.0.1" } as any; req.destroyed = false; - req.destroy = () => { + req.destroy = ((_: Error | undefined) => { + if (req.destroyed) { + return req; + } + req.destroyed = true; + return req; + }) as IncomingMessage["destroy"]; + + // Simulate body delivery + process.nextTick(() => { if (req.destroyed) { return; } - req.destroyed = true; + req.emit("data", Buffer.from(body)); + req.emit("end"); + }); + + return req; +} +function makeStalledReq(method: string): IncomingMessage { + const req = new EventEmitter() as IncomingMessage & { + destroyed: boolean; }; + req.method = method; + req.headers = {}; + req.socket = { remoteAddress: "127.0.0.1" } as any; + req.destroyed = false; + req.destroy = ((_: Error | undefined) => { + if (req.destroyed) { + return req; + } + req.destroyed = true; + return req; + }) as IncomingMessage["destroy"]; return req; }