refactor(test): dedupe slack monitor event fixtures

This commit is contained in:
Peter Steinberger
2026-02-16 22:30:23 +00:00
parent 11f3da7669
commit 054745a7e0

View File

@@ -24,6 +24,29 @@ beforeEach(() => {
}); });
describe("monitorSlackProvider tool results", () => { describe("monitorSlackProvider tool results", () => {
type SlackMessageEvent = {
type: "message";
user: string;
text: string;
ts: string;
channel: string;
channel_type: "im" | "channel";
thread_ts?: string;
parent_user_id?: string;
};
function makeSlackMessageEvent(overrides: Partial<SlackMessageEvent> = {}): SlackMessageEvent {
return {
type: "message",
user: "U1",
text: "hello",
ts: "123",
channel: "C1",
channel_type: "im",
...overrides,
};
}
function setDirectMessageReplyMode(replyToMode: "off" | "all" | "first") { function setDirectMessageReplyMode(replyToMode: "off" | "all" | "first") {
slackTestState.config = { slackTestState.config = {
messages: { messages: {
@@ -42,29 +65,18 @@ describe("monitorSlackProvider tool results", () => {
async function runDirectMessageEvent(ts: string, extraEvent: Record<string, unknown> = {}) { async function runDirectMessageEvent(ts: string, extraEvent: Record<string, unknown> = {}) {
await runSlackMessageOnce(monitorSlackProvider, { await runSlackMessageOnce(monitorSlackProvider, {
event: { event: makeSlackMessageEvent({ ts, ...extraEvent }),
type: "message",
user: "U1",
text: "hello",
ts,
channel: "C1",
channel_type: "im",
...extraEvent,
},
}); });
} }
async function runChannelThreadReplyEvent() { async function runChannelThreadReplyEvent() {
await runSlackMessageOnce(monitorSlackProvider, { await runSlackMessageOnce(monitorSlackProvider, {
event: { event: makeSlackMessageEvent({
type: "message",
user: "U1",
text: "thread reply", text: "thread reply",
ts: "123.456", ts: "123.456",
thread_ts: "111.222", thread_ts: "111.222",
channel: "C1",
channel_type: "channel", channel_type: "channel",
}, }),
}); });
} }
@@ -72,14 +84,7 @@ describe("monitorSlackProvider tool results", () => {
replyMock.mockResolvedValue({ text: "final reply" }); replyMock.mockResolvedValue({ text: "final reply" });
await runSlackMessageOnce(monitorSlackProvider, { await runSlackMessageOnce(monitorSlackProvider, {
event: { event: makeSlackMessageEvent(),
type: "message",
user: "U1",
text: "hello",
ts: "123",
channel: "C1",
channel_type: "im",
},
}); });
expect(sendMock).toHaveBeenCalledTimes(1); expect(sendMock).toHaveBeenCalledTimes(1);
@@ -101,14 +106,7 @@ describe("monitorSlackProvider tool results", () => {
monitorSlackProvider, monitorSlackProvider,
{ {
body: { api_app_id: "A2", team_id: "T1" }, body: { api_app_id: "A2", team_id: "T1" },
event: { event: makeSlackMessageEvent(),
type: "message",
user: "U1",
text: "hello",
ts: "123",
channel: "C1",
channel_type: "im",
},
}, },
{ appToken: "xapp-1-A1-abc" }, { appToken: "xapp-1-A1-abc" },
); );
@@ -150,14 +148,7 @@ describe("monitorSlackProvider tool results", () => {
replyMock.mockResolvedValue({ text: "final reply" }); replyMock.mockResolvedValue({ text: "final reply" });
await runSlackMessageOnce(monitorSlackProvider, { await runSlackMessageOnce(monitorSlackProvider, {
event: { event: makeSlackMessageEvent(),
type: "message",
user: "U1",
text: "hello",
ts: "123",
channel: "C1",
channel_type: "im",
},
}); });
expect(sendMock).toHaveBeenCalledTimes(1); expect(sendMock).toHaveBeenCalledTimes(1);
@@ -289,14 +280,7 @@ describe("monitorSlackProvider tool results", () => {
}); });
await runSlackMessageOnce(monitorSlackProvider, { await runSlackMessageOnce(monitorSlackProvider, {
event: { event: makeSlackMessageEvent(),
type: "message",
user: "U1",
text: "hello",
ts: "123",
channel: "C1",
channel_type: "im",
},
}); });
const client = getSlackClient() as { const client = getSlackClient() as {
@@ -334,14 +318,10 @@ describe("monitorSlackProvider tool results", () => {
replyMock.mockResolvedValue({ text: "hi" }); replyMock.mockResolvedValue({ text: "hi" });
await runSlackMessageOnce(monitorSlackProvider, { await runSlackMessageOnce(monitorSlackProvider, {
event: { event: makeSlackMessageEvent({
type: "message",
user: "U1",
text, text,
ts: "123",
channel: "C1",
channel_type: "channel", channel_type: "channel",
}, }),
}); });
expect(replyMock).toHaveBeenCalledTimes(1); expect(replyMock).toHaveBeenCalledTimes(1);
@@ -368,16 +348,13 @@ describe("monitorSlackProvider tool results", () => {
replyMock.mockResolvedValue({ text: "hi" }); replyMock.mockResolvedValue({ text: "hi" });
await runSlackMessageOnce(monitorSlackProvider, { await runSlackMessageOnce(monitorSlackProvider, {
event: { event: makeSlackMessageEvent({
type: "message",
user: "U1",
text: "following up", text: "following up",
ts: "124", ts: "124",
thread_ts: "123", thread_ts: "123",
parent_user_id: "bot-user", parent_user_id: "bot-user",
channel: "C1",
channel_type: "channel", channel_type: "channel",
}, }),
}); });
expect(replyMock).toHaveBeenCalledTimes(1); expect(replyMock).toHaveBeenCalledTimes(1);
@@ -397,14 +374,9 @@ describe("monitorSlackProvider tool results", () => {
replyMock.mockResolvedValue({ text: "hi" }); replyMock.mockResolvedValue({ text: "hi" });
await runSlackMessageOnce(monitorSlackProvider, { await runSlackMessageOnce(monitorSlackProvider, {
event: { event: makeSlackMessageEvent({
type: "message",
user: "U1",
text: "hello",
ts: "123",
channel: "C1",
channel_type: "channel", channel_type: "channel",
}, }),
}); });
expect(replyMock).toHaveBeenCalledTimes(1); expect(replyMock).toHaveBeenCalledTimes(1);
@@ -416,14 +388,10 @@ describe("monitorSlackProvider tool results", () => {
replyMock.mockResolvedValue({ text: "ok" }); replyMock.mockResolvedValue({ text: "ok" });
await runSlackMessageOnce(monitorSlackProvider, { await runSlackMessageOnce(monitorSlackProvider, {
event: { event: makeSlackMessageEvent({
type: "message",
user: "U1",
text: "/elevated off", text: "/elevated off",
ts: "123",
channel: "C1",
channel_type: "channel", channel_type: "channel",
}, }),
}); });
expect(replyMock).toHaveBeenCalledTimes(1); expect(replyMock).toHaveBeenCalledTimes(1);
@@ -472,14 +440,9 @@ describe("monitorSlackProvider tool results", () => {
}; };
await runSlackMessageOnce(monitorSlackProvider, { await runSlackMessageOnce(monitorSlackProvider, {
event: { event: makeSlackMessageEvent({
type: "message",
user: "U1",
text: "hello",
ts: "789", ts: "789",
channel: "C1", }),
channel_type: "im",
},
}); });
expect(sendMock).toHaveBeenCalledTimes(1); expect(sendMock).toHaveBeenCalledTimes(1);
@@ -500,14 +463,11 @@ describe("monitorSlackProvider tool results", () => {
}); });
await runSlackMessageOnce(monitorSlackProvider, { await runSlackMessageOnce(monitorSlackProvider, {
event: { event: makeSlackMessageEvent({
type: "message",
user: "U1",
text: "<@bot-user> hello", text: "<@bot-user> hello",
ts: "456", ts: "456",
channel: "C1",
channel_type: "channel", channel_type: "channel",
}, }),
}); });
expect(reactMock).toHaveBeenCalledWith({ expect(reactMock).toHaveBeenCalledWith({
@@ -530,14 +490,7 @@ describe("monitorSlackProvider tool results", () => {
}; };
await runSlackMessageOnce(monitorSlackProvider, { await runSlackMessageOnce(monitorSlackProvider, {
event: { event: makeSlackMessageEvent(),
type: "message",
user: "U1",
text: "hello",
ts: "123",
channel: "C1",
channel_type: "im",
},
}); });
expect(replyMock).not.toHaveBeenCalled(); expect(replyMock).not.toHaveBeenCalled();
@@ -565,14 +518,7 @@ describe("monitorSlackProvider tool results", () => {
const { controller, run } = startSlackMonitor(monitorSlackProvider); const { controller, run } = startSlackMonitor(monitorSlackProvider);
const handler = await getSlackHandlerOrThrow("message"); const handler = await getSlackHandlerOrThrow("message");
const baseEvent = { const baseEvent = makeSlackMessageEvent();
type: "message",
user: "U1",
text: "hello",
ts: "123",
channel: "C1",
channel_type: "im",
};
await handler({ event: baseEvent }); await handler({ event: baseEvent });
await handler({ event: { ...baseEvent, ts: "124", text: "hello again" } }); await handler({ event: { ...baseEvent, ts: "124", text: "hello again" } });
@@ -595,16 +541,10 @@ describe("monitorSlackProvider tool results", () => {
replyMock.mockResolvedValue({ text: "thread reply" }); replyMock.mockResolvedValue({ text: "thread reply" });
await runSlackMessageOnce(monitorSlackProvider, { await runSlackMessageOnce(monitorSlackProvider, {
event: { event: makeSlackMessageEvent({
type: "message",
user: "U1",
text: "hello",
ts: "123",
thread_ts: "123", thread_ts: "123",
parent_user_id: "U2", parent_user_id: "U2",
channel: "C1", }),
channel_type: "im",
},
}); });
expect(replyMock).toHaveBeenCalledTimes(1); expect(replyMock).toHaveBeenCalledTimes(1);
@@ -631,15 +571,10 @@ describe("monitorSlackProvider tool results", () => {
}; };
await runSlackMessageOnce(monitorSlackProvider, { await runSlackMessageOnce(monitorSlackProvider, {
event: { event: makeSlackMessageEvent({
type: "message",
user: "U1",
text: "hello",
ts: "123",
thread_ts: "111.222", thread_ts: "111.222",
channel: "C1",
channel_type: "channel", channel_type: "channel",
}, }),
}); });
expect(replyMock).toHaveBeenCalledTimes(1); expect(replyMock).toHaveBeenCalledTimes(1);