From 4b2740332c127ba245df6341ea4e68b9f1f5c6dc Mon Sep 17 00:00:00 2001 From: blam Date: Thu, 28 Oct 2021 18:06:47 +0200 Subject: [PATCH] chore: now we have puppeteer! Signed-off-by: blam --- packages/e2e-test/package.json | 4 +--- packages/e2e-test/src/commands/run.ts | 11 +++++++---- packages/e2e-test/src/lib/helpers.ts | 14 ++++++++------ 3 files changed, 16 insertions(+), 13 deletions(-) diff --git a/packages/e2e-test/package.json b/packages/e2e-test/package.json index 06f13d7cbf..1b8e321edb 100644 --- a/packages/e2e-test/package.json +++ b/packages/e2e-test/package.json @@ -35,6 +35,7 @@ "fs-extra": "9.1.0", "handlebars": "^4.7.3", "pgtools": "^0.3.0", + "puppeteer": "^10.4.0", "tree-kill": "^1.2.2", "ts-node": "^10.0.0" }, @@ -42,8 +43,5 @@ "watch": "./src", "exec": "bin/e2e-test", "ext": "ts" - }, - "dependencies": { - "puppeteer": "^10.4.0" } } diff --git a/packages/e2e-test/src/commands/run.ts b/packages/e2e-test/src/commands/run.ts index b91a65e72e..9eb32e378c 100644 --- a/packages/e2e-test/src/commands/run.ts +++ b/packages/e2e-test/src/commands/run.ts @@ -352,14 +352,16 @@ async function testAppServe(pluginName: string, appDir: string) { }, }); - const browser = await puppeteer.launch(); - const page = await browser.newPage(); - await page.goto('http://localhost:3000'); - let successful = false; + + let browser; try { for (let attempts = 1; ; attempts++) { try { + browser = await puppeteer.launch(); + const page = await browser.newPage(); + await page.goto('http://localhost:3000'); + await waitForPageWithText(page, '/', 'My Company Catalog'); await waitForPageWithText( page, @@ -380,6 +382,7 @@ async function testAppServe(pluginName: string, appDir: string) { } } finally { // Kill entire process group, otherwise we'll end up with hanging serve processes + if (browser) await browser.close(); killTree(startApp.pid); } diff --git a/packages/e2e-test/src/lib/helpers.ts b/packages/e2e-test/src/lib/helpers.ts index ddb2714853..b3212f3698 100644 --- a/packages/e2e-test/src/lib/helpers.ts +++ b/packages/e2e-test/src/lib/helpers.ts @@ -141,13 +141,15 @@ export async function waitForPageWithText( await page.goto(`http://localhost:3000${path}`); const escapedText = text.replace(/"|\\/g, '\\$&'); - await expect(() => - page.evaluate(() => - Array.from(document.querySelectorAll('*')).some( - el => el.textContent === escapedText, - ), + const match = await page.evaluate(() => + Array.from(document.querySelectorAll('*')).some( + el => el.textContent === escapedText, ), - ).resolves.toBeTruthy(); + ); + + if (!match) { + throw new Error(`Expected to find text ${escapedText}`); + } break; } catch (error) {