From f81c6f91d809da2d05c44981807b21cc1d5a22be Mon Sep 17 00:00:00 2001 From: Zack Jackson <25274700+ScriptedAlchemy@users.noreply.github.com> Date: Sat, 20 Sep 2025 00:02:33 -0700 Subject: [PATCH] Fix UMD federation e2e tests --- umd-federation/app1/package.json | 3 +- .../e2e/checkUmdFederationApps.spec.ts | 35 ++++++++----------- umd-federation/playwright.config.ts | 1 + umd-federation/pnpm-lock.yaml | 3 ++ 4 files changed, 20 insertions(+), 22 deletions(-) diff --git a/umd-federation/app1/package.json b/umd-federation/app1/package.json index acfde44b3f..b73c09af68 100644 --- a/umd-federation/app1/package.json +++ b/umd-federation/app1/package.json @@ -10,7 +10,8 @@ }, "dependencies": { "react": "^18.2.0", - "react-dom": "^18.2.0" + "react-dom": "^18.2.0", + "module-federation-runtime": "1.2.4" }, "devDependencies": { "@babel/core": "7.24.7", diff --git a/umd-federation/e2e/checkUmdFederationApps.spec.ts b/umd-federation/e2e/checkUmdFederationApps.spec.ts index 87261d445f..e56a34d9b0 100644 --- a/umd-federation/e2e/checkUmdFederationApps.spec.ts +++ b/umd-federation/e2e/checkUmdFederationApps.spec.ts @@ -1,6 +1,5 @@ -import { test } from '@playwright/test'; +import { expect, test } from '@playwright/test'; -import { BaseMethods } from '../../playwright-e2e/common/base'; import { baseSelectors } from '../../cypress-e2e/common/selectors'; import { Constants } from '../../cypress-e2e/fixtures/constants'; @@ -19,32 +18,26 @@ const appsData = [ test.describe('UMD Federation', () => { appsData.forEach(({ header1, header2, header3, host }) => { test.describe(`Check application on localhost:${host}`, () => { - let basePage: BaseMethods; + const baseUrl = `http://localhost:${host}/`; test.beforeEach(async ({ page }) => { - basePage = new BaseMethods(page); - await basePage.openLocalhost({ number: host }); + await page.goto(baseUrl, { waitUntil: 'networkidle' }); }); - test('Check App elements', async () => { - test.skip(!header1, 'App 2 renders external remote content without headers.'); + test('Check App elements', async ({ page }) => { + if (!header1 || !header2 || !header3) { + test.skip('App 2 renders external remote content without headers.'); + } else { + const headerLocator = page.locator(baseSelectors.tags.headers.h1); - await basePage.checkElementWithTextPresence({ - selector: baseSelectors.tags.headers.h1, - text: header1!, - }); - await basePage.checkElementWithTextPresence({ - selector: baseSelectors.tags.headers.h1, - text: header2!, - }); - await basePage.checkElementWithTextPresence({ - selector: baseSelectors.tags.headers.h1, - text: header3!, - }); + for (const text of [header1, header2, header3]) { + await expect(headerLocator.filter({ hasText: text })).toBeVisible(); + } + } }); - test('Check App URL', async () => { - await basePage.checkUrlText(`http://localhost:${host}/`, true); + test('Check App URL', async ({ page }) => { + await expect.poll(() => page.url()).toContain(baseUrl); }); }); }); diff --git a/umd-federation/playwright.config.ts b/umd-federation/playwright.config.ts index 750297d4bf..f0f32bb4cd 100644 --- a/umd-federation/playwright.config.ts +++ b/umd-federation/playwright.config.ts @@ -20,6 +20,7 @@ export default defineConfig({ screenshot: 'only-on-failure', video: 'retain-on-failure', viewport: { width: 1920, height: 1080 }, + ignoreHTTPSErrors: true, }, projects: [ { diff --git a/umd-federation/pnpm-lock.yaml b/umd-federation/pnpm-lock.yaml index 4691161d7f..6c4598c8c9 100644 --- a/umd-federation/pnpm-lock.yaml +++ b/umd-federation/pnpm-lock.yaml @@ -20,6 +20,9 @@ importers: app1: dependencies: + module-federation-runtime: + specifier: 1.2.4 + version: 1.2.4 react: specifier: ^18.2.0 version: 18.2.0