Extract the shared assistant-name predicate (resolveAssistantName: trimmed name or null) used by typing-indicator + message-item, and unit-test the branches (name shown; whitespace-only -> 'AI agent' fallback; undefined -> fallback). Behavior-identical (|| -> ?? since the helper returns null). Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
25 lines
745 B
TypeScript
25 lines
745 B
TypeScript
import { describe, it, expect } from "vitest";
|
|
import { resolveAssistantName } from "./assistant-name";
|
|
|
|
describe("resolveAssistantName", () => {
|
|
it("returns a real name unchanged", () => {
|
|
expect(resolveAssistantName("Ada")).toBe("Ada");
|
|
});
|
|
|
|
it("trims surrounding whitespace from a real name", () => {
|
|
expect(resolveAssistantName(" Ada ")).toBe("Ada");
|
|
});
|
|
|
|
it("returns null for a whitespace-only name (the reason for .trim())", () => {
|
|
expect(resolveAssistantName(" ")).toBeNull();
|
|
});
|
|
|
|
it("returns null when the name is undefined", () => {
|
|
expect(resolveAssistantName(undefined)).toBeNull();
|
|
});
|
|
|
|
it("returns null for an empty string", () => {
|
|
expect(resolveAssistantName("")).toBeNull();
|
|
});
|
|
});
|