mirror of
https://github.com/openclaw/openclaw.git
synced 2026-05-10 16:14:58 +00:00
refactor(tui): share select list theme styles
This commit is contained in:
@@ -7,7 +7,8 @@ const cliHighlightMocks = vi.hoisted(() => ({
|
||||
|
||||
vi.mock("cli-highlight", () => cliHighlightMocks);
|
||||
|
||||
const { markdownTheme, theme } = await import("./theme.js");
|
||||
const { markdownTheme, searchableSelectListTheme, selectListTheme, theme } =
|
||||
await import("./theme.js");
|
||||
|
||||
const stripAnsi = (str: string) =>
|
||||
str.replace(new RegExp(`${String.fromCharCode(27)}\\[[0-9;]*m`, "g"), "");
|
||||
@@ -59,3 +60,23 @@ describe("theme", () => {
|
||||
expect(stripAnsi(theme.assistantText("hello"))).toBe("hello");
|
||||
});
|
||||
});
|
||||
|
||||
describe("list themes", () => {
|
||||
it("reuses shared select-list styles in searchable list theme", () => {
|
||||
expect(searchableSelectListTheme.selectedPrefix(">")).toBe(selectListTheme.selectedPrefix(">"));
|
||||
expect(searchableSelectListTheme.selectedText("entry")).toBe(
|
||||
selectListTheme.selectedText("entry"),
|
||||
);
|
||||
expect(searchableSelectListTheme.description("desc")).toBe(selectListTheme.description("desc"));
|
||||
expect(searchableSelectListTheme.scrollInfo("scroll")).toBe(
|
||||
selectListTheme.scrollInfo("scroll"),
|
||||
);
|
||||
expect(searchableSelectListTheme.noMatch("none")).toBe(selectListTheme.noMatch("none"));
|
||||
});
|
||||
|
||||
it("keeps searchable list specific renderers readable", () => {
|
||||
expect(stripAnsi(searchableSelectListTheme.searchPrompt("Search:"))).toBe("Search:");
|
||||
expect(stripAnsi(searchableSelectListTheme.searchInput("query"))).toBe("query");
|
||||
expect(stripAnsi(searchableSelectListTheme.matchHighlight("match"))).toBe("match");
|
||||
});
|
||||
});
|
||||
|
||||
Reference in New Issue
Block a user