@@ -213,7 +213,7 @@ describe('pages', () => {
213213 } ) ;
214214 } ) ;
215215 describe ( 'resize' , ( ) => {
216- it ( 'create a page' , async ( ) => {
216+ it ( 'resize the page' , async ( ) => {
217217 await withMcpContext ( async ( response , context ) => {
218218 const page = context . getSelectedPage ( ) ;
219219 const resizePromise = page . evaluate ( ( ) => {
@@ -233,6 +233,118 @@ describe('pages', () => {
233233 assert . deepStrictEqual ( dimensions , [ 700 , 500 ] ) ;
234234 } ) ;
235235 } ) ;
236+
237+ it ( 'resize when window state is normal' , async ( ) => {
238+ await withMcpContext ( async ( response , context ) => {
239+ const page = context . getSelectedPage ( ) ;
240+ const browser = page . browser ( ) ;
241+ const windowId = await page . windowId ( ) ;
242+ await browser . setWindowBounds ( windowId , { windowState : 'normal' } ) ;
243+
244+ const { windowState} = await browser . getWindowBounds ( windowId ) ;
245+ assert . strictEqual ( windowState , 'normal' ) ;
246+
247+ const resizePromise = page . evaluate ( ( ) => {
248+ return new Promise ( resolve => {
249+ window . addEventListener ( 'resize' , resolve , { once : true } ) ;
250+ } ) ;
251+ } ) ;
252+ await resizePage . handler (
253+ { params : { width : 650 , height : 450 } } ,
254+ response ,
255+ context ,
256+ ) ;
257+ await resizePromise ;
258+ const dimensions = await page . evaluate ( ( ) => {
259+ return [ window . innerWidth , window . innerHeight ] ;
260+ } ) ;
261+ assert . deepStrictEqual ( dimensions , [ 650 , 450 ] ) ;
262+ } ) ;
263+ } ) ;
264+
265+ it ( 'resize when window state is minimized' , async ( ) => {
266+ await withMcpContext ( async ( response , context ) => {
267+ const page = context . getSelectedPage ( ) ;
268+ const browser = page . browser ( ) ;
269+ const windowId = await page . windowId ( ) ;
270+ await browser . setWindowBounds ( windowId , { windowState : 'minimized' } ) ;
271+
272+ const { windowState} = await browser . getWindowBounds ( windowId ) ;
273+ assert . strictEqual ( windowState , 'minimized' ) ;
274+
275+ const resizePromise = page . evaluate ( ( ) => {
276+ return new Promise ( resolve => {
277+ window . addEventListener ( 'resize' , resolve , { once : true } ) ;
278+ } ) ;
279+ } ) ;
280+ await resizePage . handler (
281+ { params : { width : 750 , height : 550 } } ,
282+ response ,
283+ context ,
284+ ) ;
285+ await resizePromise ;
286+ const dimensions = await page . evaluate ( ( ) => {
287+ return [ window . innerWidth , window . innerHeight ] ;
288+ } ) ;
289+ assert . deepStrictEqual ( dimensions , [ 750 , 550 ] ) ;
290+ } ) ;
291+ } ) ;
292+
293+ it ( 'resize when window state is maximized' , async ( ) => {
294+ await withMcpContext ( async ( response , context ) => {
295+ const page = context . getSelectedPage ( ) ;
296+ const browser = page . browser ( ) ;
297+ const windowId = await page . windowId ( ) ;
298+ await browser . setWindowBounds ( windowId , { windowState : 'maximized' } ) ;
299+
300+ const { windowState} = await browser . getWindowBounds ( windowId ) ;
301+ assert . strictEqual ( windowState , 'maximized' ) ;
302+
303+ const resizePromise = page . evaluate ( ( ) => {
304+ return new Promise ( resolve => {
305+ window . addEventListener ( 'resize' , resolve , { once : true } ) ;
306+ } ) ;
307+ } ) ;
308+ await resizePage . handler (
309+ { params : { width : 800 , height : 600 } } ,
310+ response ,
311+ context ,
312+ ) ;
313+ await resizePromise ;
314+ const dimensions = await page . evaluate ( ( ) => {
315+ return [ window . innerWidth , window . innerHeight ] ;
316+ } ) ;
317+ assert . deepStrictEqual ( dimensions , [ 800 , 600 ] ) ;
318+ } ) ;
319+ } ) ;
320+
321+ it ( 'resize when window state is fullscreen' , async ( ) => {
322+ await withMcpContext ( async ( response , context ) => {
323+ const page = context . getSelectedPage ( ) ;
324+ const browser = page . browser ( ) ;
325+ const windowId = await page . windowId ( ) ;
326+ await browser . setWindowBounds ( windowId , { windowState : 'fullscreen' } ) ;
327+
328+ const { windowState} = await browser . getWindowBounds ( windowId ) ;
329+ assert . strictEqual ( windowState , 'fullscreen' ) ;
330+
331+ const resizePromise = page . evaluate ( ( ) => {
332+ return new Promise ( resolve => {
333+ window . addEventListener ( 'resize' , resolve , { once : true } ) ;
334+ } ) ;
335+ } ) ;
336+ await resizePage . handler (
337+ { params : { width : 850 , height : 650 } } ,
338+ response ,
339+ context ,
340+ ) ;
341+ await resizePromise ;
342+ const dimensions = await page . evaluate ( ( ) => {
343+ return [ window . innerWidth , window . innerHeight ] ;
344+ } ) ;
345+ assert . deepStrictEqual ( dimensions , [ 850 , 650 ] ) ;
346+ } ) ;
347+ } ) ;
236348 } ) ;
237349
238350 describe ( 'dialogs' , ( ) => {
0 commit comments