@@ -2,6 +2,9 @@ import { describe, it, expect, beforeAll, afterAll, beforeEach, afterEach, vi }
22import { BrowserManager , getDefaultTimeout } from './browser.js' ;
33import { executeCommand } from './actions.js' ;
44import { chromium } from 'playwright-core' ;
5+ import os from 'node:os' ;
6+ import path from 'node:path' ;
7+ import { existsSync , rmSync } from 'node:fs' ;
58
69describe ( 'BrowserManager' , ( ) => {
710 let browser : BrowserManager ;
@@ -636,6 +639,25 @@ describe('BrowserManager', () => {
636639 expect ( size ?. height ) . toBe ( 1080 ) ;
637640 } ) ;
638641
642+ it ( 'should inherit the current viewport when starting a recording' , async ( ) => {
643+ const recordingPath = path . join ( os . tmpdir ( ) , `agent-browser-recording-${ Date . now ( ) } .webm` ) ;
644+
645+ await browser . setViewport ( 440 , 956 ) ;
646+
647+ try {
648+ await browser . startRecording ( recordingPath ) ;
649+ const recordingPage = ( browser as any ) . recordingPage ;
650+ expect ( recordingPage . viewportSize ( ) ) . toEqual ( { width : 440 , height : 956 } ) ;
651+ } finally {
652+ if ( browser . isRecording ( ) ) {
653+ await browser . stopRecording ( ) ;
654+ }
655+ if ( existsSync ( recordingPath ) ) {
656+ rmSync ( recordingPath , { force : true } ) ;
657+ }
658+ }
659+ } ) ;
660+
639661 it ( 'should disable viewport when --start-maximized is in args' , async ( ) => {
640662 const testBrowser = new BrowserManager ( ) ;
641663 await testBrowser . launch ( { headless : true , args : [ '--start-maximized' ] } ) ;
0 commit comments