| 12345678910111213141516171819 |
- import {test} from 'node:test'
- import assert from 'node:assert/strict'
- import {createServer} from 'node:http'
- import {dataKey,DesktopServiceManager} from './service-manager.mjs'
- test('checks recorded and bundled versions while permitting a separately owned older service',async()=>{
- const root='/fixture/desktop',record={protocol:1,instanceId:'fixture',pid:1234,dataKey:dataKey(root),version:'0.3.32',token:'fixture'}
- let actual={...record};delete actual.token
- const server=createServer((request,response)=>{response.setHeader('Content-Type','application/json');response.end(JSON.stringify(actual))})
- await new Promise(resolve=>server.listen(0,'127.0.0.1',resolve))
- record.url=`http://127.0.0.1:${server.address().port}`
- const manager=new DesktopServiceManager({version:'0.3.33'});manager.root=root
- try{
- assert.equal((await manager.verify(record)).version,'0.3.32')
- actual={...actual,version:'0.3.31'}
- await assert.rejects(manager.verify(record),/身份/)
- actual={...actual,version:'0.3.32'};manager.child={pid:record.pid}
- await assert.rejects(manager.verify(record),/版本不匹配/)
- }finally{await new Promise(resolve=>server.close(resolve))}
- })
|