From b67f736bba4c2d038ddcc5dbeec0f54477d411e6 Mon Sep 17 00:00:00 2001 From: "Tommy D. Rossi" Date: Sat, 15 Nov 2025 22:41:24 +0100 Subject: [PATCH] close pages --- playwriter/src/mcp.test.ts | 30 ++++++++++++++++++++++++++++-- 1 file changed, 28 insertions(+), 2 deletions(-) diff --git a/playwriter/src/mcp.test.ts b/playwriter/src/mcp.test.ts index 961b872..d6c1a5c 100644 --- a/playwriter/src/mcp.test.ts +++ b/playwriter/src/mcp.test.ts @@ -51,6 +51,8 @@ describe('MCP Server Tests', () => { code: js` const newPage = await context.newPage(); state.page = newPage; + if (!state.pages) state.pages = []; + state.pages.push(newPage); `, }, }) @@ -91,6 +93,8 @@ describe('MCP Server Tests', () => { code: js` const newPage = await context.newPage(); state.page = newPage; + if (!state.pages) state.pages = []; + state.pages.push(newPage); `, }, }) @@ -110,7 +114,7 @@ describe('MCP Server Tests', () => { typeof result === 'object' && result.content?.[0]?.text ? tryJsonParse(result.content[0].text) : result - expect(initialData).toMatchFileSnapshot( + await expect(initialData).toMatchFileSnapshot( 'snapshots/hacker-news-initial-accessibility.md', ) expect(result.content).toBeDefined() @@ -125,6 +129,8 @@ describe('MCP Server Tests', () => { code: js` const newPage = await context.newPage(); state.page = newPage; + if (!state.pages) state.pages = []; + state.pages.push(newPage); `, }, }) @@ -144,10 +150,30 @@ describe('MCP Server Tests', () => { typeof snapshot === 'object' && snapshot.content?.[0]?.text ? tryJsonParse(snapshot.content[0].text) : snapshot - expect(data).toMatchFileSnapshot('snapshots/shadcn-ui-accessibility.md') + await expect(data).toMatchFileSnapshot('snapshots/shadcn-ui-accessibility.md') expect(snapshot.content).toBeDefined() expect(data).toContain('shadcn') }, 30000) + + it('should close all created pages', async () => { + const result = await client.callTool({ + name: 'execute', + arguments: { + code: js` + if (state.pages && state.pages.length > 0) { + for (const page of state.pages) { + await page.close(); + } + const closedCount = state.pages.length; + state.pages = []; + return { closedCount }; + } + return { closedCount: 0 }; + `, + }, + }) + + }) }) function tryJsonParse(str: string) { try {