refactor(channels): dedupe monitor message test flows

This commit is contained in:
Peter Steinberger
2026-03-03 01:05:52 +00:00
parent 57e1534df8
commit ef920f2f39
4 changed files with 318 additions and 376 deletions

View File

@@ -32,7 +32,7 @@ describe("web monitor inbox", () => {
const sock = getSock();
sock.ev.emit("messages.upsert", upsert);
await new Promise((resolve) => setImmediate(resolve));
return { onMessage, listener };
return { onMessage, listener, sock };
}
function expectSingleGroupMessage(
@@ -44,10 +44,7 @@ describe("web monitor inbox", () => {
}
it("captures media path for image messages", async () => {
const onMessage = vi.fn();
const listener = await openMonitor(onMessage);
const sock = getSock();
const upsert = {
const { onMessage, listener, sock } = await runSingleUpsertAndCapture({
type: "notify",
messages: [
{
@@ -56,10 +53,7 @@ describe("web monitor inbox", () => {
messageTimestamp: 1_700_000_100,
},
],
};
sock.ev.emit("messages.upsert", upsert);
await new Promise((resolve) => setImmediate(resolve));
});
expect(onMessage).toHaveBeenCalledWith(
expect.objectContaining({
@@ -116,10 +110,7 @@ describe("web monitor inbox", () => {
const logPath = path.join(os.tmpdir(), `openclaw-log-test-${crypto.randomUUID()}.log`);
setLoggerOverride({ level: "trace", file: logPath });
const onMessage = vi.fn();
const listener = await openMonitor(onMessage);
const sock = getSock();
const upsert = {
const { listener } = await runSingleUpsertAndCapture({
type: "notify",
messages: [
{
@@ -129,10 +120,7 @@ describe("web monitor inbox", () => {
pushName: "Tester",
},
],
};
sock.ev.emit("messages.upsert", upsert);
await new Promise((resolve) => setImmediate(resolve));
});
await vi.waitFor(
() => {
@@ -147,10 +135,7 @@ describe("web monitor inbox", () => {
});
it("includes participant when marking group messages read", async () => {
const onMessage = vi.fn();
const listener = await openMonitor(onMessage);
const sock = getSock();
const upsert = {
const { listener, sock } = await runSingleUpsertAndCapture({
type: "notify",
messages: [
{
@@ -163,10 +148,7 @@ describe("web monitor inbox", () => {
message: { conversation: "group ping" },
},
],
};
sock.ev.emit("messages.upsert", upsert);
await new Promise((resolve) => setImmediate(resolve));
});
expect(sock.readMessages).toHaveBeenCalledWith([
{
@@ -180,10 +162,7 @@ describe("web monitor inbox", () => {
});
it("passes through group messages with participant metadata", async () => {
const onMessage = vi.fn();
const listener = await openMonitor(onMessage);
const sock = getSock();
const upsert = {
const { onMessage, listener } = await runSingleUpsertAndCapture({
type: "notify",
messages: [
{
@@ -203,10 +182,7 @@ describe("web monitor inbox", () => {
messageTimestamp: 1_700_000_000,
},
],
};
sock.ev.emit("messages.upsert", upsert);
await new Promise((resolve) => setImmediate(resolve));
});
expect(onMessage).toHaveBeenCalledWith(
expect.objectContaining({