-
Notifications
You must be signed in to change notification settings - Fork 6
Expand file tree
/
Copy pathagents-ui-service.test.ts
More file actions
119 lines (115 loc) · 3.24 KB
/
Copy pathagents-ui-service.test.ts
File metadata and controls
119 lines (115 loc) · 3.24 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
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
import { describe, expect, it } from "bun:test";
import { buildAgentsUiWorktreeSummary } from "../services/agents-ui-service";
describe("buildAgentsUiWorktreeSummary", () => {
it("maps worktree snapshots into conversation-aware summary data", () => {
const summary = buildAgentsUiWorktreeSummary({
branch: "feature/search",
label: "Search ranking",
baseBranch: "main",
path: "/repo/__worktrees/feature-search",
dir: "/repo/__worktrees/feature-search",
archived: false,
profile: "default",
agentName: "codex",
agentLabel: "Codex",
mux: true,
dirty: true,
unpushed: false,
paneCount: 2,
status: "running",
elapsed: "4m",
services: [
{ name: "frontend", port: 3010, running: true, url: "http://127.0.0.1:3010" },
],
prs: [
{
repo: "webmux",
number: 216,
state: "open",
url: "https://github.com/windmill-labs/webmux/pull/216",
updatedAt: "2026-04-15T10:00:00.000Z",
ciStatus: "pending",
ciChecks: [],
comments: [],
},
],
linearIssue: null,
creation: {
phase: "starting_session",
},
source: "ui",
oneshot: null,
}, {
provider: "codexAppServer",
conversationId: "thr_123",
threadId: "thr_123",
cwd: "/repo/__worktrees/feature-search",
lastSeenAt: "2026-04-14T10:00:00.000Z",
});
expect(summary).toEqual({
branch: "feature/search",
baseBranch: "main",
path: "/repo/__worktrees/feature-search",
archived: false,
profile: "default",
agentName: "codex",
agentLabel: "Codex",
mux: true,
status: "running",
dirty: true,
unpushed: false,
services: [
{ name: "frontend", port: 3010, running: true, url: "http://127.0.0.1:3010" },
],
prs: [
{
repo: "webmux",
number: 216,
state: "open",
url: "https://github.com/windmill-labs/webmux/pull/216",
updatedAt: "2026-04-15T10:00:00.000Z",
ciStatus: "pending",
ciChecks: [],
comments: [],
},
],
creating: true,
creationPhase: "starting_session",
conversation: {
provider: "codexAppServer",
conversationId: "thr_123",
threadId: "thr_123",
cwd: "/repo/__worktrees/feature-search",
lastSeenAt: "2026-04-14T10:00:00.000Z",
},
});
});
it("defaults missing conversation metadata to null", () => {
const summary = buildAgentsUiWorktreeSummary({
branch: "feature/idle",
label: null,
path: "/repo/__worktrees/feature-idle",
dir: "/repo/__worktrees/feature-idle",
archived: false,
profile: null,
agentName: null,
agentLabel: null,
mux: false,
dirty: false,
unpushed: false,
paneCount: 0,
status: "closed",
elapsed: "",
services: [],
prs: [],
linearIssue: null,
creation: null,
source: "ui",
oneshot: null,
}, null);
expect(summary.conversation).toBeNull();
expect(summary.creating).toBe(false);
expect(summary.creationPhase).toBeNull();
expect(summary.mux).toBe(false);
});
});