test: guard extension callback captures

This commit is contained in:
Peter Steinberger
2026-05-08 06:34:41 +01:00
parent a360aa3c8c
commit 948ba9e7cb
3 changed files with 14 additions and 6 deletions

View File

@@ -290,8 +290,11 @@ describe("gateway bonjour advertiser", () => {
await started.stop();
childProcessModule.exec('arp -a | findstr /C:"---"', () => {});
const afterStopOptions = execMock.mock.calls.at(-1)?.[1];
expect(afterStopOptions).toEqual(expect.any(Function));
const afterStopCallback = execMock.mock.calls.at(-1)?.[1];
if (typeof afterStopCallback !== "function") {
throw new Error("expected restored exec callback overload");
}
afterStopCallback(null, "", "");
} finally {
childProcessModule.exec = originalExec;
}

View File

@@ -2638,7 +2638,9 @@ describe("createTelegramBot", () => {
createTelegramBot({ token: "tok" });
const reactionHandler = onSpy.mock.calls.find((call) => call[0] === "message_reaction");
expect(reactionHandler?.[0]).toBe("message_reaction");
expect(reactionHandler?.[1]).toEqual(expect.any(Function));
if (typeof reactionHandler?.[1] !== "function") {
throw new Error("expected message_reaction handler");
}
});
it("enqueues system event for reaction", async () => {

View File

@@ -1206,13 +1206,16 @@ describe("RealtimeCallHandler websocket hardening", () => {
}),
);
await vi.waitFor(() => {
expect(sendProviderAudio).toEqual(expect.any(Function));
if (!sendProviderAudio) {
throw new Error("expected realtime provider audio sender");
}
});
if (!sendProviderAudio) {
const providerAudioSender = sendProviderAudio;
if (!providerAudioSender) {
throw new Error("expected realtime provider audio sender");
}
sendProviderAudio(Buffer.alloc(8_000 * 121, 0x7f));
providerAudioSender(Buffer.alloc(8_000 * 121, 0x7f));
const closed = await waitForClose(ws);
expect(closed.code).toBe(1013);