From 876ea5bd36251294efe0e2312e1475cf78d0a503 Mon Sep 17 00:00:00 2001 From: Dave Gordon Date: Sun, 30 Jun 2024 12:11:13 +0100 Subject: [PATCH] [playwright] feature: Testing playwright in read edge browser --- .../workflows/frontend-service-tests-edge.yml | 64 +++++++++++++++++++ playwright/package.json | 5 +- playwright/playwright.config.ts | 8 +-- 3 files changed, 71 insertions(+), 6 deletions(-) create mode 100644 .github/workflows/frontend-service-tests-edge.yml diff --git a/.github/workflows/frontend-service-tests-edge.yml b/.github/workflows/frontend-service-tests-edge.yml new file mode 100644 index 00000000..60bec281 --- /dev/null +++ b/.github/workflows/frontend-service-tests-edge.yml @@ -0,0 +1,64 @@ +name: Frontend Service Tests - Playwright - Edge + +on: + pull_request: + branches: [ "main" ] + paths: + - "playwright/**" + - "frontend/**" + +jobs: + build: + runs-on: ubuntu-latest + env: + API_URL: http://localhost:5000 + steps: + - uses: actions/checkout@v4 + + - name: Set up Docker Buildx + uses: docker/setup-buildx-action@v1 + + - name: Use Node.js 20.x + uses: actions/setup-node@v4 + with: + node-version: 20.x + + - name: Create .env file + run: | + cd ./backend + echo "JWT_SECRET=${{ secrets.JWT_SECRET }}" > .env + + - name: Start service in docker + run: | + cd ./backend + npm run docker:up + + - name: Wait for service to start + run: | + sleep 15 + + - name: Test connectivity + run: curl ${API_URL} + + - name: Install and start frontend + run: | + cd ./frontend + yarn + yarn build + yarn start & + + - name: Install Playwright + run: | + cd ./playwright + yarn + yarn playwright install msedge + + - name: Run Playwright Tests + run: | + cd ./playwright + yarn test:edge + + - name: Stop service in docker + run: | + cd ./backend + npm run docker:down diff --git a/playwright/package.json b/playwright/package.json index 814bc2a2..3aa79a9c 100644 --- a/playwright/package.json +++ b/playwright/package.json @@ -5,8 +5,9 @@ "main": "index.js", "scripts": { "install": "playwright install-deps chromium", - "test": "playwright test", - "test:production": "export URL=https://notes-app-full-stack-bjml.onrender.com && playwright test --grep @PRODUCTION", + "test": "playwright test --project chrome", + "test:edge": "playwright test --project 'Microsoft Edge'", + "test:production": "export URL=https://notes-app-full-stack-bjml.onrender.com && playwright test --grep @PRODUCTION --project chrome", "lint": "eslint . --ext .ts", "lint:fix": "eslint . --ext .ts --fix", "lint:ci": "eslint . --ext .ts --format @microsoft/eslint-formatter-sarif --output-file eslint-results.sarif", diff --git a/playwright/playwright.config.ts b/playwright/playwright.config.ts index 73cdf795..5a166a21 100644 --- a/playwright/playwright.config.ts +++ b/playwright/playwright.config.ts @@ -80,10 +80,10 @@ export default defineConfig({ // }, /* Test against branded browsers. */ - // { - // name: 'Microsoft Edge', - // use: { ...devices['Desktop Edge'], channel: 'msedge' }, - // }, + { + name: 'Microsoft Edge', + use: { ...devices['Desktop Edge'], channel: 'msedge' }, + }, // { // name: 'Google Chrome', // use: { ...devices['Desktop Chrome'], channel: 'chrome' },