import test from 'node:test'; import assert from 'node:assert/strict'; import { FONT_SIZE_KEY, readFontSize, saveFontSize } from '../public/terminal-preferences.js'; test('terminal font size persists and falls back to 10 for missing or corrupt preferences', () => { const values = new Map(); const storage = { getItem: (key) => values.get(key) ?? null, setItem: (key, value) => values.set(key, value) }; assert.equal(readFontSize(storage), 10); assert.equal(saveFontSize(18, storage), true); assert.equal(readFontSize(storage), 18); for (const value of ['garbage', '7', '33', '12.5', 'Infinity']) { values.set(FONT_SIZE_KEY, value); assert.equal(readFontSize(storage), 10); } assert.equal(saveFontSize(32, storage), true); assert.equal(readFontSize(storage), 32); }); test('blocked browser storage preserves the default and reports that saving failed', () => { const storage = { getItem: () => { throw new Error('Storage blocked'); }, setItem: () => { throw new Error('Storage blocked'); } }; assert.equal(readFontSize(storage), 10); assert.equal(saveFontSize(16, storage), false); });