@@ -399,6 +399,37 @@ test("explicit theme", async ({ page }) => {
399399 }
400400} ) ;
401401
402+ test ( "poster - npt" , async ( { page } ) => {
403+ await createPlayer ( page , "/assets/long.cast" , {
404+ poster : "npt:7" ,
405+ } ) ;
406+
407+ await page . waitForTimeout ( 500 ) ;
408+
409+ await expectTermText ( page , [ "start" , "one" , "six" ] ) ;
410+ } ) ;
411+
412+ test ( "poster - data:text/plain" , async ( { page } ) => {
413+ await createPlayer ( page , "/assets/long.cast" , {
414+ poster : "data:text/plain,hello world" ,
415+ } ) ;
416+
417+ await page . waitForTimeout ( 500 ) ;
418+
419+ await expectTermText ( page , "hello world" ) ;
420+ } ) ;
421+
422+ test ( "poster - data:text/plain - with preload" , async ( { page } ) => {
423+ await createPlayer ( page , "/assets/long.cast" , {
424+ poster : "data:text/plain,hello world" ,
425+ preload : true ,
426+ } ) ;
427+
428+ await page . waitForTimeout ( 500 ) ;
429+
430+ await expectTermText ( page , "hello world" ) ;
431+ } ) ;
432+
402433const PLAYER_EVENTS = [ "play" , "playing" , "pause" , "ended" , "input" , "marker" ] ;
403434
404435async function createPlayer ( page , src , opts = { } ) {
@@ -511,6 +542,22 @@ function expectTermSize(terminal, cols, rows) {
511542 . toEqual ( { cols, rows } ) ;
512543}
513544
545+ async function expectTermText ( page , fragments , timeout = 1000 ) {
546+ const termText = page . locator ( ".ap-term-text" ) ;
547+ await termText . waitFor ( ) ;
548+ const expected = Array . isArray ( fragments ) ? fragments : [ fragments ] ;
549+
550+ await expect
551+ . poll (
552+ async ( ) => {
553+ const text = await termText . innerText ( ) ;
554+ return expected . every ( ( fragment ) => text . includes ( fragment ) ) ;
555+ } ,
556+ { timeout } ,
557+ )
558+ . toBe ( true ) ;
559+ }
560+
514561async function clickProgressBar ( page , position ) {
515562 const bar = page . locator ( ".ap-bar" ) ;
516563 await bar . waitFor ( ) ;
0 commit comments