dbx/tests/appTheme.test.ts

29 lines
1.1 KiB
TypeScript

import { strict as assert } from "node:assert";
import test from "node:test";
import {
getTauriThemeForMode,
normalizeAppThemeMode,
resolveAppThemeAppearance,
} from "../src/lib/appTheme.ts";
test("normalizes stored app theme modes", () => {
assert.equal(normalizeAppThemeMode("dark"), "dark");
assert.equal(normalizeAppThemeMode("light"), "light");
assert.equal(normalizeAppThemeMode("system"), "system");
assert.equal(normalizeAppThemeMode(null), "light");
assert.equal(normalizeAppThemeMode("unexpected"), "light");
});
test("resolves system app theme from current system preference", () => {
assert.equal(resolveAppThemeAppearance("light", true), "light");
assert.equal(resolveAppThemeAppearance("dark", false), "dark");
assert.equal(resolveAppThemeAppearance("system", true), "dark");
assert.equal(resolveAppThemeAppearance("system", false), "light");
});
test("maps system app theme mode to native automatic theme", () => {
assert.equal(getTauriThemeForMode("light"), "light");
assert.equal(getTauriThemeForMode("dark"), "dark");
assert.equal(getTauriThemeForMode("system"), null);
});