This commit is contained in:
parent
40e5379eb3
commit
de63c48da2
9 changed files with 415 additions and 1 deletions
36
site/queued-pastes/prefs.test.mjs
Normal file
36
site/queued-pastes/prefs.test.mjs
Normal 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 },
|
||||
);
|
||||
});
|
||||
Loading…
Add table
Add a link
Reference in a new issue