diff --git a/apps/client/src/services/css_class_manager.spec.ts b/apps/client/src/services/css_class_manager.spec.ts new file mode 100644 index 000000000..b49e8c0ab --- /dev/null +++ b/apps/client/src/services/css_class_manager.spec.ts @@ -0,0 +1,14 @@ +import { describe, expect, it } from "vitest"; + +import { getReadableTextColor } from "./css_class_manager"; + +describe("getReadableTextColor", () => { + it("doesn't crash for invalid color", () => { + expect(getReadableTextColor("RandomColor")).toBe("#000"); + }); + + it("tolerates different casing", () => { + expect(getReadableTextColor("Blue")) + .toBe(getReadableTextColor("blue")); + }); +}); diff --git a/apps/client/src/services/css_class_manager.ts b/apps/client/src/services/css_class_manager.ts index 5aa73e32b..de1c98b87 100644 --- a/apps/client/src/services/css_class_manager.ts +++ b/apps/client/src/services/css_class_manager.ts @@ -1,21 +1,22 @@ import clsx from "clsx"; -import {readCssVar} from "../utils/css-var"; import Color, { ColorInstance } from "color"; +import {readCssVar} from "../utils/css-var"; + const registeredClasses = new Set(); const colorsWithHue = new Set(); // Read the color lightness limits defined in the theme as CSS variables const lightThemeColorMaxLightness = readCssVar( - document.documentElement, - "tree-item-light-theme-max-color-lightness" - ).asNumber(70); + document.documentElement, + "tree-item-light-theme-max-color-lightness" +).asNumber(70); const darkThemeColorMinLightness = readCssVar( - document.documentElement, - "tree-item-dark-theme-min-color-lightness" - ).asNumber(50); + document.documentElement, + "tree-item-dark-theme-min-color-lightness" +).asNumber(50); function createClassForColor(colorString: string | null) { if (!colorString?.trim()) return ""; @@ -27,7 +28,7 @@ function createClassForColor(colorString: string | null) { if (!registeredClasses.has(className)) { const adjustedColor = adjustColorLightness(color, lightThemeColorMaxLightness!, - darkThemeColorMinLightness!); + darkThemeColorMinLightness!); const hue = getHue(color); $("head").append(`