Files
t8y2--dbx/packages/app-tests/editorSettingsDraft.test.ts
2026-07-13 13:09:14 +08:00

28 lines
1.2 KiB
TypeScript
Vendored

import assert from "node:assert/strict";
import { test } from "vitest";
import { createPinia, setActivePinia } from "pinia";
import { DEFAULT_UI_FONT_FAMILY } from "../../apps/desktop/src/lib/app/appFonts.ts";
import { editorSettingsDraftFromSettings, editorSettingsPatchFromDraft } from "../../apps/desktop/src/lib/settings/editorSettingsDraft.ts";
import { DEFAULT_EDITOR_SETTINGS, useSettingsStore } from "../../apps/desktop/src/stores/settingsStore.ts";
test("keeps a loaded editor font when an old appearance draft only changes the UI font", () => {
setActivePinia(createPinia());
const store = useSettingsStore();
const savedEditorFont = "'Cascadia Code', 'Cascadia Mono', monospace";
store.updateEditorSettings({ fontFamily: savedEditorFont });
const staleDraftBase = editorSettingsDraftFromSettings(DEFAULT_EDITOR_SETTINGS);
const staleDraft = {
...staleDraftBase,
uiFontFamily: `"Aptos", ${DEFAULT_UI_FONT_FAMILY}`,
};
const patch = editorSettingsPatchFromDraft(staleDraft, staleDraftBase);
store.updateEditorSettings(patch);
assert.equal(patch.fontFamily, undefined);
assert.equal(store.editorSettings.fontFamily, savedEditorFont);
assert.equal(store.editorSettings.uiFontFamily, staleDraft.uiFontFamily);
});