| 123456789101112131415161718192021222324252627282930313233343536373839 |
- import {test} from 'node:test'
- import assert from 'node:assert/strict'
- import {mkdtemp,rm,stat} from 'node:fs/promises'
- import {join} from 'node:path'
- import {tmpdir} from 'node:os'
- import {DesktopPreferences} from './preferences.mjs'
- test('background login remains opt-in and persists without changing system login permission',async()=>{
- const home=await mkdtemp(join(tmpdir(),'yaoyao-desktop-preferences-'))
- try{
- const preferences=new DesktopPreferences(home)
- assert.deepEqual(await preferences.load(),{backgroundAtLogin:false,startupChoice:'ask',remoteServer:''})
- await preferences.setBackgroundAtLogin(true)
- assert.deepEqual(await new DesktopPreferences(home).load(),{backgroundAtLogin:true,startupChoice:'ask',remoteServer:''})
- if(process.platform!=='win32')assert.equal((await stat(preferences.path)).mode&0o777,0o600)
- await preferences.setBackgroundAtLogin(false)
- assert.deepEqual(await new DesktopPreferences(home).load(),{backgroundAtLogin:false,startupChoice:'ask',remoteServer:''})
- }finally{await rm(home,{recursive:true,force:true})}
- })
- test('startup choice persists independently of background login',async()=>{
- const home=await mkdtemp(join(tmpdir(),'yaoyao-desktop-preferences-'))
- try{
- const preferences=new DesktopPreferences(home)
- await preferences.load()
- await preferences.setStartupChoice('remote')
- assert.deepEqual(await new DesktopPreferences(home).load(),{backgroundAtLogin:false,startupChoice:'remote',remoteServer:''})
- await preferences.setBackgroundAtLogin(true)
- assert.deepEqual(await new DesktopPreferences(home).load(),{backgroundAtLogin:true,startupChoice:'remote',remoteServer:''})
- await preferences.setStartupChoice('local')
- assert.deepEqual(await new DesktopPreferences(home).load(),{backgroundAtLogin:true,startupChoice:'local',remoteServer:''})
- await preferences.setStartupChoice('ask')
- assert.deepEqual(await new DesktopPreferences(home).load(),{backgroundAtLogin:true,startupChoice:'ask',remoteServer:''})
- await preferences.setStartupChoice('nonsense')
- assert.equal((await new DesktopPreferences(home).load()).startupChoice,'ask')
- await preferences.setRemoteServer('http://192.168.1.10:15300')
- assert.deepEqual(await new DesktopPreferences(home).load(),{backgroundAtLogin:true,startupChoice:'ask',remoteServer:'http://192.168.1.10:15300'})
- await preferences.setRemoteServer(undefined)
- assert.equal((await new DesktopPreferences(home).load()).remoteServer,'')
- }finally{await rm(home,{recursive:true,force:true})}
- })
|