Skip to content

Commit 002aeca

Browse files
committed
Add tests for all 5 session recency border levels
1 parent 8e22a43 commit 002aeca

1 file changed

Lines changed: 36 additions & 2 deletions

File tree

tests/unit/dashboard/session-card.test.ts

Lines changed: 36 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -105,19 +105,53 @@ describe("renderSessionCard", () => {
105105
expect(html).toContain("anthropic / claude-sonnet");
106106
});
107107

108-
test("adds active recency class for very recent sessions", () => {
108+
test("adds active recency class for sessions < 5 min old", () => {
109109
const now = new Date();
110110
const lastSeen = now.toISOString().replace("T", " ").slice(0, 19);
111111
const html = renderSessionCard(makeSession({ last_seen: lastSeen }));
112112
expect(html).toContain("session-card--active");
113113
});
114114

115-
test("no recency class for old sessions", () => {
115+
test("adds recent recency class for sessions < 1 h old", () => {
116+
const seen = new Date(Date.now() - 10 * 60 * 1000);
117+
const lastSeen = seen.toISOString().replace("T", " ").slice(0, 19);
118+
const html = renderSessionCard(makeSession({ last_seen: lastSeen }));
119+
expect(html).toContain("session-card--recent");
120+
expect(html).not.toContain("session-card--active");
121+
});
122+
123+
test("adds idle recency class for sessions < 8 h old", () => {
124+
const seen = new Date(Date.now() - 2 * 60 * 60 * 1000);
125+
const lastSeen = seen.toISOString().replace("T", " ").slice(0, 19);
126+
const html = renderSessionCard(makeSession({ last_seen: lastSeen }));
127+
expect(html).toContain("session-card--idle");
128+
expect(html).not.toContain("session-card--recent");
129+
});
130+
131+
test("adds stale recency class for sessions < 16 h old", () => {
132+
const seen = new Date(Date.now() - 10 * 60 * 60 * 1000);
133+
const lastSeen = seen.toISOString().replace("T", " ").slice(0, 19);
134+
const html = renderSessionCard(makeSession({ last_seen: lastSeen }));
135+
expect(html).toContain("session-card--stale");
136+
expect(html).not.toContain("session-card--idle");
137+
});
138+
139+
test("adds old recency class for sessions < 24 h old", () => {
140+
const seen = new Date(Date.now() - 20 * 60 * 60 * 1000);
141+
const lastSeen = seen.toISOString().replace("T", " ").slice(0, 19);
142+
const html = renderSessionCard(makeSession({ last_seen: lastSeen }));
143+
expect(html).toContain("session-card--old");
144+
expect(html).not.toContain("session-card--stale");
145+
});
146+
147+
test("no recency class for sessions >= 24 h old", () => {
116148
const html = renderSessionCard(
117149
makeSession({ last_seen: "2020-01-01 00:00:00" }),
118150
);
119151
expect(html).not.toContain("session-card--active");
120152
expect(html).not.toContain("session-card--recent");
121153
expect(html).not.toContain("session-card--idle");
154+
expect(html).not.toContain("session-card--stale");
155+
expect(html).not.toContain("session-card--old");
122156
});
123157
});

0 commit comments

Comments
 (0)