Fail closed when worker update status is unavailable

This commit is contained in:
Jonathan Sykes
2026-10-08 00:10:04 +08:00
parent 5d1e5ec791
commit 92404563b3
2 changed files with 9 additions and 0 deletions

View File

@@ -362,3 +362,9 @@ test('explicit playback override clears the worker guard and reloads once',async
assert.deepStrictEqual(messages,[{type:'PLAYING',value:false},{type:'SKIP_WAITING'}]);
container.fireControllerChange();container.fireControllerChange();assert.equal(reloads,1);
});
test('an unanswered worker status cannot fall through to an empty legacy refresh',async()=>{
const vm=require('node:vm'),fs=require('node:fs');
const sandbox={AssetSyncCore:{CACHE:'ytplayer-assets'},navigator:{serviceWorker:{getRegistration:async()=>({active:{postMessage(){}}})}}};
vm.runInNewContext(fs.readFileSync(__dirname+'/sw-update.js','utf8'),sandbox);
await assert.rejects(sandbox.SwUpdate.refreshShellInPlace({cachesApi:{open:async()=>({}),keys:async()=>[]},fetchFn:async()=>({ok:true,json:async()=>({buildTag:'new'})}),isShellCache:()=>true}),/Worker update status unavailable/);
});