Load layouts and optional features from staged asset caches
This commit is contained in:
@@ -34,3 +34,14 @@ test('background synchronization fills all groups without publishing a new curre
|
||||
assert.ok(await c.match('/extra.js?v=e'));
|
||||
assert.deepEqual(await core.state(c), before);
|
||||
});
|
||||
|
||||
test('active layouts also block on shared dependencies, while other layouts stay background', () => {
|
||||
const m=manifest(); m.groups['layout:glass-stage']={contract:1,background:true,files:['/glass.css'],dependencies:['feature:controls']}; m.groups['feature:controls']={contract:1,background:true,files:['/controls.js']}; m.groups['layout:bento-hub']={contract:1,background:true,files:['/bento.css']};
|
||||
for(const path of ['/glass.css','/controls.js','/bento.css'])m.files[path]={h:'h'};
|
||||
assert.deepEqual(core.blocking(m,null,'glass-stage'),['/a.js','/controls.js','/glass.css','/index.html']);
|
||||
});
|
||||
|
||||
test('removing group membership retains the old tab URL even if the physical file is still shipped unchanged',()=>{
|
||||
const previous=manifest(),current=manifest();current.groups.core.files=['/index.html'];
|
||||
assert.ok(core.retained(current,previous).has('/a.js?v=a'));
|
||||
});
|
||||
|
||||
Reference in New Issue
Block a user