feat(terminal): add persistent browser font size controls
This commit is contained in:
29
test/terminal-preferences.test.js
Normal file
29
test/terminal-preferences.test.js
Normal file
@@ -0,0 +1,29 @@
|
||||
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);
|
||||
});
|
||||
Reference in New Issue
Block a user