28 lines
1.2 KiB
TypeScript
Vendored
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);
|
|
});
|