播放页引导下载添加

This commit is contained in:
谢宇宁
2026-10-27 21:45:47 +07:00
parent 93a64beaa0
commit 3c9ab2630f
6 changed files with 31 additions and 12 deletions
+4 -3
View File
@@ -277,7 +277,7 @@ function playerFixture({allowed=false,preview=true,detail={},chapterList,mobile=
mainButton.dataset.playMode='main';previewButton.dataset.playMode='preview';
const node=(parent,key)=>{if(!parent.nodes.has(key))parent.nodes.set(key,new Element());return parent.nodes.get(key);};
page.nodes.set('video',video);page.nodes.set('.play-screen',box);page.nodes.set('.play-source-status',status);
box.nodes.set('.play-screen-overlay',overlay);box.nodes.set('[data-media="toggle"]',new Element('BUTTON'));
box.nodes.set('.play-screen-overlay',overlay);box.nodes.set('[data-media="toggle"]',new Element('BUTTON'));box.nodes.set('.hg-app-gate',new Element());
box.nodes.set('[data-play-action="previous"]',new Element('BUTTON'));box.nodes.set('[data-play-action="next"]',new Element('BUTTON'));
for(const key of ['.play-episode-pages','.play-episode-grid'])node(page,key);
page.lists.set('button[data-play-mode]',preview?[mainButton,previewButton]:[]);page.lists.set('[data-play-mode]',preview?[box,mainButton,previewButton]:[box]);
@@ -377,15 +377,16 @@ test('slug playback links survive client episode rendering and next controls, an
}finally{dispose?.();f.dispose();}
});
test('chapters without a source offer the free preview; main shows a not-yet-available notice and never reports',async()=>{
test('chapters without a source offer the free preview; main shows the App download gate and never reports',async()=>{
const f=playerFixture();let dispose;
try{
dispose=await renderPlayer(f.app,23456,90042);await flush();
assert.equal(f.box.dataset.playMode,'preview');assert.equal(f.video.src,'https://cdn.example/preview.mp4');assert.equal(f.video.plays,0);
await f.controlActions.toggle();assert.equal(f.video.plays,1);assert.equal(f.posts.length,0);
f.mainButton.dispatchEvent(new Event('click'));await flush();
assert.equal(f.video.src,'');assert.equal(f.box.dataset.playMode,'main');assert.equal(f.status.textContent,'本集视频暂未开放,请稍后再试');
assert.equal(f.video.src,'');assert.equal(f.box.dataset.playMode,'main');assert.equal(f.box.querySelector('.hg-app-gate').hidden,false);assert.equal(f.status.hidden,true);assert.equal(f.box.querySelector('[data-media="toggle"]').hidden,true);
await f.controlActions.toggle();await f.controlActions.retry();assert.equal(f.lock.open,false);assert.equal(f.posts.length,0);assert.equal(f.video.plays,1);
f.previewButton.dispatchEvent(new Event('click'));await flush();assert.equal(f.box.querySelector('.hg-app-gate').hidden,true);assert.equal(f.status.hidden,false);
assert.ok(!f.box.querySelector('.play-screen-overlay').innerHTML.includes('data-show-unlock'));
}finally{dispose?.();f.dispose();}
});