-
Notifications
You must be signed in to change notification settings - Fork 61
Expand file tree
/
Copy pathtaskThreadService.test.ts
More file actions
66 lines (59 loc) · 2.05 KB
/
Copy pathtaskThreadService.test.ts
File metadata and controls
66 lines (59 loc) · 2.05 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
import type { PostHogAPIClient } from "@posthog/api-client/posthog-client";
import type { TaskThreadMessage } from "@posthog/shared/domain-types";
import { describe, expect, it, vi } from "vitest";
import { TaskThreadService } from "./taskThreadService";
function message(
overrides: Partial<TaskThreadMessage> = {},
): TaskThreadMessage {
return {
id: "message-id",
task: "task-id",
content: "@agent investigate this",
created_at: "2026-07-16T00:00:00Z",
...overrides,
};
}
function client(overrides: Partial<PostHogAPIClient> = {}): PostHogAPIClient {
return overrides as PostHogAPIClient;
}
describe("TaskThreadService", () => {
it("creates a message before forwarding it to the agent", async () => {
const createTaskThreadMessage = vi.fn().mockResolvedValue(message());
const sendTaskThreadMessageToAgent = vi
.fn()
.mockResolvedValue(
message({ forwarded_to_agent_at: "2026-07-16T00:00:01Z" }),
);
const service = new TaskThreadService();
await service.postMessageToAgent(
client({ createTaskThreadMessage, sendTaskThreadMessageToAgent }),
"task-id",
"@agent investigate this",
);
expect(createTaskThreadMessage).toHaveBeenCalledWith(
"task-id",
"@agent investigate this",
);
expect(sendTaskThreadMessageToAgent).toHaveBeenCalledWith(
"task-id",
"message-id",
);
expect(createTaskThreadMessage.mock.invocationCallOrder[0]).toBeLessThan(
sendTaskThreadMessageToAgent.mock.invocationCallOrder[0],
);
});
it("returns the created message when forwarding fails", async () => {
const sendError = new Error("No active run");
const service = new TaskThreadService();
await expect(
service.postMessageToAgent(
client({
createTaskThreadMessage: vi.fn().mockResolvedValue(message()),
sendTaskThreadMessageToAgent: vi.fn().mockRejectedValue(sendError),
}),
"task-id",
"@agent investigate this",
),
).resolves.toEqual({ message: message(), sendError });
});
});