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))} })