mirror of
https://github.com/openclaw/openclaw.git
synced 2026-05-10 10:55:07 +00:00
TUI: waiting shimmer helper + tests
This commit is contained in:
committed by
Peter Steinberger
parent
2e99369113
commit
fac66d4dda
41
src/tui/tui-waiting.test.ts
Normal file
41
src/tui/tui-waiting.test.ts
Normal file
@@ -0,0 +1,41 @@
|
||||
import { describe, expect, it } from "vitest";
|
||||
|
||||
import { buildWaitingStatusMessage, pickWaitingPhrase } from "./tui-waiting.js";
|
||||
|
||||
const theme = {
|
||||
dim: (s: string) => `<d>${s}</d>`,
|
||||
bold: (s: string) => `<b>${s}</b>`,
|
||||
accentSoft: (s: string) => `<a>${s}</a>`,
|
||||
} as any;
|
||||
|
||||
describe("tui-waiting", () => {
|
||||
it("pickWaitingPhrase rotates every 10 ticks", () => {
|
||||
const phrases = ["a", "b", "c"];
|
||||
expect(pickWaitingPhrase(0, phrases)).toBe("a");
|
||||
expect(pickWaitingPhrase(9, phrases)).toBe("a");
|
||||
expect(pickWaitingPhrase(10, phrases)).toBe("b");
|
||||
expect(pickWaitingPhrase(20, phrases)).toBe("c");
|
||||
expect(pickWaitingPhrase(30, phrases)).toBe("a");
|
||||
});
|
||||
|
||||
it("buildWaitingStatusMessage includes shimmer markup and metadata", () => {
|
||||
const msg = buildWaitingStatusMessage({
|
||||
theme,
|
||||
tick: 1,
|
||||
elapsed: "3s",
|
||||
connectionStatus: "connected",
|
||||
phrases: ["hello"],
|
||||
});
|
||||
|
||||
expect(msg).toContain("connected");
|
||||
expect(msg).toContain("3s");
|
||||
// text is wrapped per-char; check it appears in order
|
||||
expect(msg).toContain("h");
|
||||
expect(msg).toContain("e");
|
||||
expect(msg).toContain("l");
|
||||
expect(msg).toContain("o");
|
||||
// shimmer should contain both highlighted and dim parts
|
||||
expect(msg).toContain("<b><a>");
|
||||
expect(msg).toContain("<d>");
|
||||
});
|
||||
});
|
||||
Reference in New Issue
Block a user