Keep ordinary app launches available while optional policy loads

This commit is contained in:
archipelago
2026-10-07 01:05:33 -04:00
parent f1fb388ded
commit cffb74326a
6 changed files with 100 additions and 22 deletions
@@ -36,3 +36,10 @@ test('stale queued commands do not control a replacement handshake',async()=>{
assert.deepEqual(f.calls,[])
f.bridge.dispose()
})
test('dispose releases listeners even if the app pause action rejects',async()=>{
const handlers=new Map()
const host={parent:{postMessage(){}},addEventListener:(name,fn)=>handlers.set(name,fn),removeEventListener:name=>handlers.delete(name)}
const bridge=attachAudioBridge({parentOrigin:'https://node.test',host,snapshot:()=>null,actions:{pause:async()=>{throw Error('player already closed')}}})
bridge.dispose();await new Promise(setImmediate);assert.equal(handlers.size,0)
})