Initial commit: Receipt Studio desktop application
This commit is contained in:
@@ -0,0 +1,22 @@
|
||||
import {it,expect} from 'vitest'
|
||||
import {mkdtemp,readFile,writeFile,rm} from 'node:fs/promises'
|
||||
import {tmpdir} from 'node:os'
|
||||
import path from 'node:path'
|
||||
import {SettingsStore} from '../src/main/settings-store'
|
||||
import {defaultSettings} from '../src/shared/settings'
|
||||
|
||||
it('升级旧配置启用固定导出行为,保留其他偏好,并在下次保存后持久化',async()=>{
|
||||
const dir=await mkdtemp(path.join(tmpdir(),'receipt-settings-')),file=path.join(dir,'settings.json')
|
||||
try{
|
||||
const old:Partial<ReturnType<typeof defaultSettings>>={...defaultSettings(dir),createBatchFolder:false,openAfterExport:false,numberPrefix:'OLD',defaultCashier:'原出纳',fileNamePattern:'customer_number'}
|
||||
delete old.historyPageSize
|
||||
await writeFile(file,JSON.stringify(old))
|
||||
const store=new SettingsStore(file,dir),loaded=await store.load()
|
||||
expect(loaded).toMatchObject({createBatchFolder:true,openAfterExport:true,numberPrefix:'OLD',defaultCashier:'原出纳',fileNamePattern:'customer_number',outputDirectory:dir,historyPageSize:5})
|
||||
// Loading does not overwrite the user's existing file; the next explicit save persists the policy.
|
||||
expect(JSON.parse(await readFile(file,'utf8'))).toEqual(old)
|
||||
const saved=await store.save({...loaded,createBatchFolder:false,openAfterExport:false,defaultReviewer:'复核人',historyPageSize:20})
|
||||
expect(saved).toMatchObject({createBatchFolder:true,openAfterExport:true,defaultReviewer:'复核人',numberPrefix:'OLD',historyPageSize:20})
|
||||
expect(await new SettingsStore(file,dir).load()).toEqual(saved)
|
||||
}finally{await rm(dir,{recursive:true,force:true})}
|
||||
})
|
||||
Reference in New Issue
Block a user