fix: handle signal reactions safely (#616) (thanks @neist)

This commit is contained in:
Peter Steinberger
2026-01-09 23:39:18 +01:00
parent 94e7a98bf2
commit 5bc3d15bba
3 changed files with 41 additions and 6 deletions

View File

@@ -153,6 +153,42 @@ describe("monitorSignalProvider tool results", () => {
);
});
it("ignores reaction-only messages", async () => {
const abortController = new AbortController();
streamMock.mockImplementation(async ({ onEvent }) => {
const payload = {
envelope: {
sourceNumber: "+15550001111",
sourceName: "Ada",
timestamp: 1,
reactionMessage: {
emoji: "👍",
targetAuthor: "+15550002222",
targetSentTimestamp: 2,
},
},
};
await onEvent({
event: "receive",
data: JSON.stringify(payload),
});
abortController.abort();
});
await monitorSignalProvider({
autoStart: false,
baseUrl: "http://127.0.0.1:8080",
abortSignal: abortController.signal,
});
await flush();
expect(replyMock).not.toHaveBeenCalled();
expect(sendMock).not.toHaveBeenCalled();
expect(updateLastRouteMock).not.toHaveBeenCalled();
});
it("does not resend pairing code when a request is already pending", async () => {
config = {
...config,