Files
kanban/test/terminal-preferences.test.js

30 lines
1.1 KiB
JavaScript

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);
});