1import { describe, expect, it } from "vite-plus/test";
2
3import { previewPromptText } from "./previewPromptText";
4
5describe("browser prompt response", () => {
6 const prompt = { type: "prompt" as const, message: "Your name?", defaultValue: "Guest" };
7
8 it("preserves a typed response across repeated control broadcasts", () => {
9 expect(previewPromptText(prompt, { ...prompt }, "Alice")).toBe("Alice");
10 });
11
12 it("preserves an intentionally empty response", () => {
13 expect(previewPromptText(prompt, { ...prompt }, "")).toBe("");
14 });
15
16 it("initializes a newly opened prompt", () => {
17 expect(previewPromptText(null, prompt, "")).toBe("Guest");
18 });
19
20 it("resets a stale draft after reconnecting without dialog history", () => {
21 expect(previewPromptText(null, prompt, "Alice")).toBe("Guest");
22 });
23
24 it("resets when the message changes", () => {
25 expect(previewPromptText(prompt, { ...prompt, message: "Next name?" }, "Alice")).toBe("Guest");
26 });
27
28 it("resets when the default value changes", () => {
29 expect(previewPromptText(prompt, { ...prompt, defaultValue: "Bob" }, "Alice")).toBe("Bob");
30 });
31
32 it("resets when the dialog type changes with matching message and default", () => {
33 expect(previewPromptText(prompt, { ...prompt, type: "confirm" }, "Alice")).toBe("Guest");
34 });
35
36 it("clears a closed dialog and initializes an identical reopened prompt", () => {
37 const cleared = previewPromptText(prompt, null, "Alice");
38 expect(cleared).toBe("");
39 expect(previewPromptText(null, prompt, cleared)).toBe("Guest");
40 });
41});