22 lines
889 B
JavaScript
22 lines
889 B
JavaScript
import test from 'node:test'
|
|
import assert from 'node:assert/strict'
|
|
import { loadPrefs, savePrefs } from '../src/lib/prefs.ts'
|
|
|
|
test('screen-off preference migrates old settings and survives unrelated updates', () => {
|
|
const storage = new Map([['ituoke.prefs.v1', JSON.stringify({ connectHost: 'phone:1234' })]])
|
|
globalThis.localStorage = {
|
|
getItem: key => storage.get(key) ?? null,
|
|
setItem: (key, value) => storage.set(key, value),
|
|
}
|
|
assert.equal(loadPrefs().screenOff, false)
|
|
savePrefs({ screenOff: true })
|
|
savePrefs({ theme: 'dark' })
|
|
assert.equal(loadPrefs().screenOff, true)
|
|
assert.equal(loadPrefs().connectHost, 'phone:1234')
|
|
savePrefs({ screenOff: false })
|
|
assert.equal(loadPrefs().screenOff, false)
|
|
storage.set('ituoke.prefs.v1', JSON.stringify({ screenOff: 'true' }))
|
|
assert.equal(loadPrefs().screenOff, false)
|
|
delete globalThis.localStorage
|
|
})
|