Skip to content

Commit f2e6355

Browse files
committed
test coverage for window resizing
1 parent 1d1e480 commit f2e6355

1 file changed

Lines changed: 113 additions & 1 deletion

File tree

tests/tools/pages.test.ts

Lines changed: 113 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -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

Comments
 (0)