Skip to content

Commit d7db1f0

Browse files
committed
test(chat): add tests for ToolCard and useToolCardState helpers
- ensure `retainDetectedOverflow` maintains correct overflow states - verify `resolveStateAfterBodyAvailabilityChange` handles state transitions correctly based on body content availability
1 parent 72158b3 commit d7db1f0

2 files changed

Lines changed: 55 additions & 0 deletions

File tree

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
import { describe, expect, it } from "vitest";
2+
3+
import { retainDetectedOverflow } from "./ToolCard";
4+
5+
describe("retainDetectedOverflow", () => {
6+
it("keeps overflow visible after a later transient non-overflow measurement", () => {
7+
expect(retainDetectedOverflow(true, false)).toBe(true);
8+
});
9+
10+
it("turns on overflow after it is detected", () => {
11+
expect(retainDetectedOverflow(false, true)).toBe(true);
12+
});
13+
14+
it("keeps overflow hidden before it is detected", () => {
15+
expect(retainDetectedOverflow(false, false)).toBe(false);
16+
});
17+
});
Lines changed: 38 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,38 @@
1+
import { describe, expect, it } from "vitest";
2+
3+
import { resolveStateAfterBodyAvailabilityChange } from "./useToolCardState";
4+
5+
describe("resolveStateAfterBodyAvailabilityChange", () => {
6+
it("opens a latest card preview when live body content arrives after mount", () => {
7+
expect(
8+
resolveStateAfterBodyAvailabilityChange({
9+
currentState: "collapsed",
10+
previousBodyAvailable: false,
11+
bodyAvailable: true,
12+
defaultState: "preview",
13+
}),
14+
).toBe("preview");
15+
});
16+
17+
it("does not reopen a card that already had body content", () => {
18+
expect(
19+
resolveStateAfterBodyAvailabilityChange({
20+
currentState: "collapsed",
21+
previousBodyAvailable: true,
22+
bodyAvailable: true,
23+
defaultState: "preview",
24+
}),
25+
).toBe("collapsed");
26+
});
27+
28+
it("does not open cards whose default state is collapsed", () => {
29+
expect(
30+
resolveStateAfterBodyAvailabilityChange({
31+
currentState: "collapsed",
32+
previousBodyAvailable: false,
33+
bodyAvailable: true,
34+
defaultState: "collapsed",
35+
}),
36+
).toBe("collapsed");
37+
});
38+
});

0 commit comments

Comments
 (0)