diff --git a/_test/demo-package/Test/e2e/.env b/_test/demo-package/Test/e2e/.env new file mode 100644 index 00000000..d0f3f161 --- /dev/null +++ b/_test/demo-package/Test/e2e/.env @@ -0,0 +1 @@ +PLAYWRIGHT_BASE_URL=https://hyva-demo.elgentos.io/ diff --git a/_test/demo-package/Test/e2e/README.md b/_test/demo-package/Test/e2e/README.md new file mode 100644 index 00000000..36c8d271 --- /dev/null +++ b/_test/demo-package/Test/e2e/README.md @@ -0,0 +1,5 @@ +cd e2e +npm install -D @playwright/test +npx playwright install +npm install -D dotenv +npx playwright test hello-magento.spec.ts diff --git a/_test/demo-package/Test/e2e/hello-magento.spec.ts b/_test/demo-package/Test/e2e/hello-magento.spec.ts new file mode 100644 index 00000000..37762363 --- /dev/null +++ b/_test/demo-package/Test/e2e/hello-magento.spec.ts @@ -0,0 +1,20 @@ +import { test, expect } from '@playwright/test'; + +test.describe('Page health checks', () => { + test('Homepage_returns_200', {tag: ['@smoke', '@cold']}, async ({page}) => { + const homepageURL = process.env.PLAYWRIGHT_BASE_URL || process.env.BASE_URL; + if (!homepageURL) { + throw new Error("PLAYWRIGHT_BASE_URL has not been defined in the .env file."); + } + + const homepageResponsePromise = page.waitForResponse(homepageURL); + await page.goto(homepageURL); + const homepageResponse = await homepageResponsePromise; + expect(homepageResponse.status(), 'Homepage should return 200').toBe(200); + + const pageTtitle = page.getByRole('heading', {level: 1}) + + await expect(pageTtitle, 'Homepage has a visible title').toBeVisible(); + await expect(pageTtitle).toHaveText(/\S+/); + }) +}) diff --git a/_test/demo-package/Test/e2e/playwright.config.ts b/_test/demo-package/Test/e2e/playwright.config.ts new file mode 100644 index 00000000..a71c8359 --- /dev/null +++ b/_test/demo-package/Test/e2e/playwright.config.ts @@ -0,0 +1,8 @@ +import { defineConfig } from '@playwright/test'; +import dotenv from 'dotenv'; + +dotenv.config(); + +export default defineConfig({ + testDir: '.', +}); diff --git a/_test/demo-package/Test/e2e/tsconfig.json b/_test/demo-package/Test/e2e/tsconfig.json new file mode 100644 index 00000000..df59d8dd --- /dev/null +++ b/_test/demo-package/Test/e2e/tsconfig.json @@ -0,0 +1,8 @@ +{ + "compilerOptions": { + "target": "ES6", + "module": "commonjs", + "strict": true, + "esModuleInterop": true + } +}