IKHSAN
ENID Baca dalam Bahasa Indonesia

homeio

Public

Forked from doctor-io/homeio

Branch
main
Latest commit
958d74616 October 2026

preferences.test.ts

Open raw
import { describe, expect, it } from "vitest";
import {
  DEFAULT_DESKTOP_NOTIFICATION_PREFERENCES,
  DESKTOP_PREFERENCES_STORAGE_KEY,
  readDesktopPreferences,
  writeDesktopPreferences,
} from "@/lib/desktop/preferences";

describe("desktop preferences", () => {
  it("falls back to default notification preferences when older storage is missing them", () => {
    const storage = {
      getItem(key: string) {
        if (key !== DESKTOP_PREFERENCES_STORAGE_KEY) return null;
        return JSON.stringify({
          language: "en-US",
          autoCheckUpdates: false,
        });
      },
    } as Storage;

    const preferences = readDesktopPreferences(storage);

    expect(preferences.notifications).toEqual(
      DEFAULT_DESKTOP_NOTIFICATION_PREFERENCES,
    );
  });

  it("writes notification preferences", () => {
    let storedValue = "";
    const storage = {
      getItem() {
        return storedValue;
      },
      setItem(_key: string, value: string) {
        storedValue = value;
      },
    } as Storage;

    writeDesktopPreferences(storage, {
      language: "en-US",
      autoCheckUpdates: true,
      notifications: {
        systemAlertsEnabled: false,
        updateNotificationsEnabled: true,
        backupReportsEnabled: false,
        securityEventsEnabled: false,
        cpuAlertThresholdPercent: 70,
        memoryAlertThresholdPercent: 75,
        diskAlertThresholdPercent: 80,
        temperatureAlertThresholdCelsius: 65,
      },
    });

    const parsed = JSON.parse(storedValue) as {
      notifications: {
        cpuAlertThresholdPercent: number;
        diskAlertThresholdPercent: number;
      };
    };
    expect(parsed.notifications.cpuAlertThresholdPercent).toBe(70);
    expect(parsed.notifications.diskAlertThresholdPercent).toBe(80);
  });
});
bytes
1,807
lines
64
Type
ts
Latest commit
16 October 2026