/** * Tooltip-wave mechanism pins (owner, 2026-09-25): the composition rule — * icon/pill controls ride the styled Radix tooltip via Hint, the shortcut * appended as an em-dash suffix off the LIVE registry (a rebind changes * the suffix); truncation-reveals keep native title=; the copy carries no * internal vocabulary. Node has no navigator → IS_MAC is false → the mod * glyph renders "Ctrl+" here; the composition logic is the pin, not the * platform glyph. (Node 26 ships navigator.platform — on this Mac the real * ⌘/⇧ glyphs render, so they're pinned as-is.) */ import React from "react"; (globalThis as Record).React = React; import assert from "node:assert/strict"; import { describe, it } from "node:test"; import { createElement } from "react"; import { renderToStaticMarkup } from "react-dom/server"; import { Hint, hintText } from "../components/ui/hint.tsx"; import { TOOLTIP_DELAY_MS } from "../components/ui/tooltip.tsx"; import { AUTO_UPDATE_HINT } from "../components/settings/settings-dialog.tsx"; describe("hintText — the parenthesized composition", () => { it("a registry action appends the LIVE binding (override-aware source)", () => { assert.equal(hintText("Dictate", "toggle-dictation"), "Dictate (⌘D)"); assert.equal(hintText("Settings", "open-settings"), "Settings (⌘,)"); assert.equal(hintText("Search sessions", "sessions-search"), "Search sessions (⌘⇧F)"); }); it("surface-owned keys ride the binding prop (no registry entry)", () => { assert.equal(hintText("Close", undefined, "escape"), "Close (Esc)"); assert.equal(hintText("Send", undefined, "enter"), "Send (↵)"); }); it("no shortcut = the label alone, no dangling dash", () => { assert.equal(hintText("Home"), "Home"); assert.equal(hintText("Stop dictation (Esc)"), "Stop dictation (Esc)"); }); }); describe("subtlety round pins (owner 2026-09-25)", () => { it("the rest delay is 500ms — tooltips appear on pause, never in passing", () => { assert.equal(TOOLTIP_DELAY_MS, 500); }); }); describe("spot-pins: the dev-speak cull (owner copy review at merge)", () => { it("the auto-update hint is honest user language — no stream jargon", () => { assert.equal(AUTO_UPDATE_HINT, "Automatic updates arrive in an upcoming release"); assert.ok(!AUTO_UPDATE_HINT.includes("wave"), "no stream vocabulary"); }); }); describe("Hint — the mechanism (SSR: the tooltip itself stays closed)", () => { it("asChild: no wrapper DOM — the control keeps its own testid and classes", () => { const html = renderToStaticMarkup( createElement(Hint, { label: "Dictate", action: "toggle-dictation", children: createElement("button", { "data-testid": "dictation-toggle", className: "the-quiet-chrome" }, "Dictate"), }), ); assert.match(html, /^