1import { describe, expect, it } from "@effect/vitest";
2
3import { resolveUserMessageIntentBadge } from "./userMessageIntentBadge";
4
5describe("user message intent badge", () => {
6 it("does not label ordinary turn-start messages", () => {
7 expect(resolveUserMessageIntentBadge(undefined)).toBeNull();
8 expect(resolveUserMessageIntentBadge("turn_start")).toBeNull();
9 });
10
11 it("labels messages waiting behind the active turn", () => {
12 expect(resolveUserMessageIntentBadge("queued_turn")).toEqual({
13 label: "queued",
14 accessibilityLabel: "Queued behind the active turn",
15 tone: "queued",
16 });
17 });
18
19 it("labels messages that steer the active turn", () => {
20 expect(resolveUserMessageIntentBadge("steer")).toEqual({
21 label: "steer",
22 accessibilityLabel: "Steered the active turn",
23 tone: "steer",
24 });
25 });
26
27 it("preserves the queued origin after promotion to steer", () => {
28 expect(resolveUserMessageIntentBadge("promoted_queued_to_steer")).toEqual({
29 label: "queued → steer",
30 accessibilityLabel: "Originally queued, then promoted to steer the active turn",
31 tone: "steer",
32 });
33 });
34});