test(imessage): stabilize monitor tests with harness import

This commit is contained in:
Peter Steinberger
2026-02-14 21:05:34 +01:00
parent 63aa155ade
commit 2b5ad475ad

View File

@@ -21,6 +21,9 @@ beforeAll(async () => {
({ monitorIMessageProvider } = await import("./monitor.js"));
});
function startMonitor() {
return monitorIMessageProvider();
}
const replyMock = getReplyMock();
const sendMock = getSendMock();
const readAllowFromStoreMock = getReadAllowFromStoreMock();
@@ -56,10 +59,6 @@ async function closeMonitor() {
throw new Error("imessage test harness: closeResolve not set");
}
function startMonitor() {
return monitorIMessageProvider();
}
describe("monitorIMessageProvider", () => {
it("ignores malformed rpc message payloads", async () => {
const run = startMonitor();
@@ -80,7 +79,7 @@ describe("monitorIMessageProvider", () => {
});
it("skips group messages without a mention by default", async () => {
const run = monitorIMessageProvider();
const run = startMonitor();
await waitForSubscribe();
getNotificationHandler()?.({
@@ -98,7 +97,7 @@ describe("monitorIMessageProvider", () => {
});
await flush();
getCloseResolve()?.();
await closeMonitor();
await run;
expect(replyMock).not.toHaveBeenCalled();
@@ -118,7 +117,7 @@ describe("monitorIMessageProvider", () => {
},
},
});
const run = monitorIMessageProvider();
const run = startMonitor();
await waitForSubscribe();
getNotificationHandler()?.({
@@ -136,7 +135,7 @@ describe("monitorIMessageProvider", () => {
});
await flush();
getCloseResolve()?.();
await closeMonitor();
await run;
expect(replyMock).toHaveBeenCalled();
@@ -156,7 +155,7 @@ describe("monitorIMessageProvider", () => {
},
},
});
const run = monitorIMessageProvider();
const run = startMonitor();
await waitForSubscribe();
getNotificationHandler()?.({
@@ -174,7 +173,7 @@ describe("monitorIMessageProvider", () => {
});
await flush();
getCloseResolve()?.();
await closeMonitor();
await run;
expect(replyMock).toHaveBeenCalled();
@@ -192,7 +191,7 @@ describe("monitorIMessageProvider", () => {
},
},
});
const run = monitorIMessageProvider();
const run = startMonitor();
await waitForSubscribe();
getNotificationHandler()?.({
@@ -210,7 +209,7 @@ describe("monitorIMessageProvider", () => {
});
await flush();
getCloseResolve()?.();
await closeMonitor();
await run;
expect(replyMock).not.toHaveBeenCalled();
@@ -232,7 +231,7 @@ describe("monitorIMessageProvider", () => {
},
});
const run = monitorIMessageProvider();
const run = startMonitor();
await waitForSubscribe();
getNotificationHandler()?.({
@@ -250,7 +249,7 @@ describe("monitorIMessageProvider", () => {
});
await flush();
getCloseResolve()?.();
await closeMonitor();
await run;
expect(replyMock).toHaveBeenCalled();
@@ -269,7 +268,7 @@ describe("monitorIMessageProvider", () => {
messages: { responsePrefix: "PFX" },
});
replyMock.mockResolvedValue({ text: "final reply" });
const run = monitorIMessageProvider();
const run = startMonitor();
await waitForSubscribe();
getNotificationHandler()?.({
@@ -287,7 +286,7 @@ describe("monitorIMessageProvider", () => {
});
await flush();
getCloseResolve()?.();
await closeMonitor();
await run;
expect(sendMock).toHaveBeenCalledTimes(1);
@@ -308,7 +307,7 @@ describe("monitorIMessageProvider", () => {
},
},
});
const run = monitorIMessageProvider();
const run = startMonitor();
await waitForSubscribe();
getNotificationHandler()?.({
@@ -326,7 +325,7 @@ describe("monitorIMessageProvider", () => {
});
await flush();
getCloseResolve()?.();
await closeMonitor();
await run;
expect(replyMock).not.toHaveBeenCalled();
@@ -340,7 +339,7 @@ describe("monitorIMessageProvider", () => {
it("delivers group replies when mentioned", async () => {
replyMock.mockResolvedValueOnce({ text: "yo" });
const run = monitorIMessageProvider();
const run = startMonitor();
await waitForSubscribe();
getNotificationHandler()?.({
@@ -360,7 +359,7 @@ describe("monitorIMessageProvider", () => {
});
await flush();
getCloseResolve()?.();
await closeMonitor();
await run;
expect(replyMock).toHaveBeenCalledOnce();
@@ -390,7 +389,7 @@ describe("monitorIMessageProvider", () => {
},
},
});
const run = monitorIMessageProvider();
const run = startMonitor();
await waitForSubscribe();
getNotificationHandler()?.({
@@ -408,7 +407,7 @@ describe("monitorIMessageProvider", () => {
});
await flush();
getCloseResolve()?.();
await closeMonitor();
await run;
expect(replyMock).not.toHaveBeenCalled();
@@ -535,7 +534,7 @@ describe("monitorIMessageProvider", () => {
},
},
});
const run = monitorIMessageProvider();
const run = startMonitor();
await waitForSubscribe();
getNotificationHandler()?.({
@@ -553,14 +552,14 @@ describe("monitorIMessageProvider", () => {
});
await flush();
getCloseResolve()?.();
await closeMonitor();
await run;
expect(replyMock).not.toHaveBeenCalled();
});
it("prefixes group message bodies with sender", async () => {
const run = monitorIMessageProvider();
const run = startMonitor();
await waitForSubscribe();
getNotificationHandler()?.({
@@ -580,7 +579,7 @@ describe("monitorIMessageProvider", () => {
});
await flush();
getCloseResolve()?.();
await closeMonitor();
await run;
expect(replyMock).toHaveBeenCalled();
@@ -591,7 +590,7 @@ describe("monitorIMessageProvider", () => {
});
it("includes reply context when imessage reply metadata is present", async () => {
const run = monitorIMessageProvider();
const run = startMonitor();
await waitForSubscribe();
getNotificationHandler()?.({
@@ -612,7 +611,7 @@ describe("monitorIMessageProvider", () => {
});
await flush();
getCloseResolve()?.();
await closeMonitor();
await run;
expect(replyMock).toHaveBeenCalled();