Added Queued Pastes
Some checks failed
/ publish (push) Failing after 1m21s

This commit is contained in:
Leon Mika 2026-09-16 21:52:03 +10:00
parent 40e5379eb3
commit de63c48da2
9 changed files with 415 additions and 1 deletions

View file

@ -0,0 +1,36 @@
import { test } from 'node:test';
import assert from 'node:assert/strict';
import { serializePrefs, parsePrefs } from './prefs.mjs';
test('serializePrefs writes dashed keys with boolean values', () => {
assert.equal(
serializePrefs({ newLines: true, advanceFocus: false }),
'{"new-lines":true,"advance-focus":false}',
);
});
test('parsePrefs reads dashed keys into camelCase', () => {
assert.deepEqual(
parsePrefs('{"new-lines":true,"advance-focus":false}'),
{ newLines: true, advanceFocus: false },
);
});
test('parsePrefs returns defaults for invalid JSON', () => {
assert.deepEqual(parsePrefs('not json'), { newLines: false, advanceFocus: false });
});
test('parsePrefs returns defaults for null (missing localStorage entry)', () => {
assert.deepEqual(parsePrefs(null), { newLines: false, advanceFocus: false });
});
test('parsePrefs defaults missing keys to false', () => {
assert.deepEqual(parsePrefs('{"new-lines":true}'), { newLines: true, advanceFocus: false });
});
test('parsePrefs defaults non-boolean values to false', () => {
assert.deepEqual(
parsePrefs('{"new-lines":"yes","advance-focus":1}'),
{ newLines: false, advanceFocus: false },
);
});