Open History to see the last commit
1import * as DateTime from "effect/DateTime";
2import { describe, expect, it } from "vite-plus/test";
3import { subagentCardDetail, subagentCardElapsed } from "./subagent-card-presentation";
4
5describe("subagent card", () => {
6 it.each([
7 [" Verified", "screenshot Verified"],
8 ["[docs](https://en.wikipedia.org/wiki/T3_(protocol))", "docs"],
9 ["[report](outputs/report%20(final).md)", "report"],
10 ["[report](outputs/report\\(final.md)", "report"],
11 ])("strips image and link markup from %s", (detail, expected) => {
12 expect(subagentCardDetail(detail)).toBe(expected);
13 });
14
15 const start = DateTime.makeUnsafe("2026-09-21T12:00:00Z");
16 const end = DateTime.makeUnsafe("2026-09-21T12:01:00Z");
17 const later = DateTime.makeUnsafe("2026-09-21T12:02:00Z");
18 const done = { status: "completed" as const, startedAt: start, completedAt: end };
19
20 it("counts live work but never uses a settled agent's age as its duration", () => {
21 const unfinished = { ...done, completedAt: null };
22 expect(subagentCardElapsed([unfinished], DateTime.toEpochMillis(later))).toBeNull();
23 expect(
24 subagentCardElapsed([{ ...unfinished, status: "running" }], DateTime.toEpochMillis(later)),
25 ).toBe("2m 0s");
26 expect(
27 subagentCardElapsed([{ ...unfinished, status: "idle" }], DateTime.toEpochMillis(later)),
28 ).toBeNull();
29 expect(
30 subagentCardElapsed([{ ...done, startedAt: null }], DateTime.toEpochMillis(later)),
31 ).toBeNull();
32 });
33});