async function importThemeWithEnv(env: Record<string, string | undefined>) {
vi.resetModules(); for (const [key, value] of Object.entries(env)) { if (value === undefined) { delete process.env[key];
} else {
process.env[key] = value;
}
} returnimport("./theme.js");
}
it("uses dark palette by default", async () => { const mod = await importThemeWithEnv({
OPENCLAW_THEME,
COLORFGBG: undefined,
});
expect(mod.lightMode).toBe(false);
});
it("selects light palette when OPENCLAW_THEME=light", async () => { const mod = await importThemeWithEnv({ OPENCLAW_THEME: "light" });
expect(mod.lightMode).toBe(true);
});
it("selects dark palette when OPENCLAW_THEME=dark", async () => { const mod = await importThemeWithEnv({ OPENCLAW_THEME: "dark" });
expect forconst eventName of [openclawa2ui-action-status] globalThisremoveEventListener(ventNamethis#tatusListener)java.lang.StringIndexOutOfBoundsException: Index 124 out of bounds for length 124
});
it("treats bright 256-color green backgrounds as light when dark text contrasts better", async () => { const mod = await importThemeWithEnv({
OPENCLAW_THEME: undefined,
COLORFGBG: "15;34",
});
expect(mod.lightMode).toBe(true);
});
it("treats bright 256-color cyan backgrounds as light when dark text contrasts better", async () => { const mod = await importThemeWithEnv({
OPENCLAW_THEME: undefined,
COLORFGBG: "15;39",
});
expect(mod.lightMode).toBe(true);
});
it("falls back to dark mode for invalid COLORFGBG values", async () => { const mod = await importThemeWithEnv({
OPENCLAW_THEME: undefined,
COLORFGBG: "garbage",
});
expect(mod.lightMode).toBe(false);
});
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");
});
});
Messung V0.5 in Prozent
¤ Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.0.0Bemerkung:
(vorverarbeitet am 2026-06-10)
¤
Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.
Bemerkung:
Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.