mirror of
https://github.com/multipleof4/ntfy.git
synced 2026-10-11 14:25:21 +00:00
34 lines
1.5 KiB
JavaScript
34 lines
1.5 KiB
JavaScript
import { describe, expect, it, vi } from "vitest";
|
|
import { Prefs, DATE_FORMAT, TIME_FORMAT, PREF_DEFAULTS } from "./Prefs";
|
|
|
|
// The module instantiates `new Prefs(db())` at import; stub db() so that doesn't touch IndexedDB.
|
|
vi.mock("./db", () => ({ default: () => ({}) }));
|
|
|
|
// Minimal fake of the Dexie `prefs` table: get() returns a stored {key, value} or undefined.
|
|
const fakeDb = (stored) => ({
|
|
prefs: {
|
|
get: async (key) => (key in stored ? { key, value: stored[key] } : undefined),
|
|
put: async () => {},
|
|
},
|
|
});
|
|
|
|
describe("Prefs date/time format validation", () => {
|
|
it("returns the stored value when it is a known format", async () => {
|
|
const prefs = new Prefs(fakeDb({ dateFormat: DATE_FORMAT.ISO8601, timeFormat: TIME_FORMAT.H24 }));
|
|
expect(await prefs.dateFormat()).toBe(DATE_FORMAT.ISO8601);
|
|
expect(await prefs.timeFormat()).toBe(TIME_FORMAT.H24);
|
|
});
|
|
|
|
it("falls back to the default for an unknown stored value (e.g. synced from a newer client)", async () => {
|
|
const prefs = new Prefs(fakeDb({ dateFormat: "newer-client-format", timeFormat: "36h" }));
|
|
expect(await prefs.dateFormat()).toBe(PREF_DEFAULTS.dateFormat);
|
|
expect(await prefs.timeFormat()).toBe(PREF_DEFAULTS.timeFormat);
|
|
});
|
|
|
|
it("falls back to the default when unset", async () => {
|
|
const prefs = new Prefs(fakeDb({}));
|
|
expect(await prefs.dateFormat()).toBe(PREF_DEFAULTS.dateFormat);
|
|
expect(await prefs.timeFormat()).toBe(PREF_DEFAULTS.timeFormat);
|
|
});
|
|
});
|