From dace2a43aee8a044e48bce6f5956c32f824708e3 Mon Sep 17 00:00:00 2001 From: Leendert de Borst Date: Wed, 10 Dec 2025 18:08:06 +0100 Subject: [PATCH] Move browser extension e2e tests to main e2e test action (#1404) --- .github/workflows/browser-extension-build.yml | 81 ----------------- .../{dotnet-e2e-tests.yml => e2e-tests.yml} | 87 ++++++++++++++++++- 2 files changed, 84 insertions(+), 84 deletions(-) rename .github/workflows/{dotnet-e2e-tests.yml => e2e-tests.yml} (57%) diff --git a/.github/workflows/browser-extension-build.yml b/.github/workflows/browser-extension-build.yml index 08be44b63..5925d8e29 100644 --- a/.github/workflows/browser-extension-build.yml +++ b/.github/workflows/browser-extension-build.yml @@ -64,87 +64,6 @@ jobs: with: browser: chrome - e2e-tests: - needs: build-shared-libraries - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v4 - - - name: Setup .NET - uses: actions/setup-dotnet@v4 - with: - dotnet-version: 9.0.x - - - name: Setup Node.js - uses: actions/setup-node@v4 - with: - node-version: '20' - cache: 'npm' - cache-dependency-path: apps/browser-extension/package-lock.json - - - name: Install .NET dependencies - working-directory: apps/server - run: dotnet workload install wasm-tools - - - name: Build API server - working-directory: apps/server - run: dotnet build AliasVault.Api - - - name: Start dev database - run: ./install.sh configure-dev-db start - - - name: Start API server - working-directory: apps/server/AliasVault.Api - run: | - dotnet run --no-build & - # Wait for API to be ready - echo "Waiting for API to start..." - for i in {1..30}; do - if curl -s http://localhost:5092/v1/Auth/status > /dev/null 2>&1; then - echo "API is ready!" - break - fi - echo "Attempt $i: API not ready yet..." - sleep 2 - done - env: - ConnectionStrings__AliasServerDbContext: "Host=localhost;Port=5433;Database=aliasdb_e2e_extension;Username=aliasvault;Password=password" - JWT_KEY: "12345678901234567890123456789012" - DATA_PROTECTION_CERT_PASS: "Development" - PUBLIC_REGISTRATION_ENABLED: "true" - ADMIN_PASSWORD_HASH: "AQAAAAIAAYagAAAAEKWfKfa2gh9Z72vjAlnNP1xlME7FsunRznzyrfqFte40FToufRwa3kX8wwDwnEXZag==" - ADMIN_PASSWORD_GENERATED: "2024-01-01T00:00:00Z" - - - name: Install browser extension dependencies - run: npm ci - working-directory: apps/browser-extension - - - name: Install Playwright browsers - run: npx playwright install chromium --with-deps - working-directory: apps/browser-extension - - - name: Build and run E2E tests - run: xvfb-run --auto-servernum npm run test:e2e:build - working-directory: apps/browser-extension - env: - ALIASVAULT_API_URL: "http://localhost:5092" - - - name: Upload Playwright report - if: always() - uses: actions/upload-artifact@v4 - with: - name: playwright-report - path: apps/browser-extension/playwright-report/ - retention-days: 30 - - - name: Upload test results - if: always() - uses: actions/upload-artifact@v4 - with: - name: playwright-test-results - path: apps/browser-extension/tests/test-results/ - retention-days: 30 - build-firefox-extension: needs: build-shared-libraries runs-on: ubuntu-latest diff --git a/.github/workflows/dotnet-e2e-tests.yml b/.github/workflows/e2e-tests.yml similarity index 57% rename from .github/workflows/dotnet-e2e-tests.yml rename to .github/workflows/e2e-tests.yml index 04cbbe461..66b0af77f 100644 --- a/.github/workflows/dotnet-e2e-tests.yml +++ b/.github/workflows/e2e-tests.yml @@ -89,7 +89,7 @@ jobs: max_attempts: 3 command: cd apps/server && dotnet test Tests/AliasVault.E2ETests --no-build --verbosity normal --filter "FullyQualifiedName~.E2ETests.Tests.Client.Shard${{ matrix.shard }}." - browser-extension-tests: + browser-extension-dotnet-tests: timeout-minutes: 60 runs-on: ubuntu-latest steps: @@ -103,7 +103,7 @@ jobs: - name: Setup Node.js uses: actions/setup-node@v4 with: - node-version: '18' + node-version: '20' - name: Install dependencies working-directory: apps/server @@ -137,5 +137,86 @@ jobs: if: always() uses: actions/upload-artifact@v4 with: - name: extension-test-results + name: extension-dotnet-test-results path: TestResults-Extension.xml + + browser-extension-playwright-tests: + timeout-minutes: 60 + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v4 + + - name: Setup .NET + uses: actions/setup-dotnet@v4 + with: + dotnet-version: 9.0.x + + - name: Setup Node.js + uses: actions/setup-node@v4 + with: + node-version: '20' + cache: 'npm' + cache-dependency-path: apps/browser-extension/package-lock.json + + - name: Install .NET dependencies + working-directory: apps/server + run: dotnet workload install wasm-tools + + - name: Build API server + working-directory: apps/server + run: dotnet build AliasVault.Api + + - name: Start dev database + run: ./install.sh configure-dev-db start + + - name: Start API server + working-directory: apps/server/AliasVault.Api + run: | + dotnet run --no-build & + # Wait for API to be ready + echo "Waiting for API to start..." + for i in {1..30}; do + if curl -s http://localhost:5092/v1/Auth/status > /dev/null 2>&1; then + echo "API is ready!" + break + fi + echo "Attempt $i: API not ready yet..." + sleep 2 + done + env: + ConnectionStrings__AliasServerDbContext: "Host=localhost;Port=5433;Database=aliasdb_e2e_extension;Username=aliasvault;Password=password" + JWT_KEY: "12345678901234567890123456789012" + DATA_PROTECTION_CERT_PASS: "Development" + PUBLIC_REGISTRATION_ENABLED: "true" + ADMIN_PASSWORD_HASH: "AQAAAAIAAYagAAAAEKWfKfa2gh9Z72vjAlnNP1xlME7FsunRznzyrfqFte40FToufRwa3kX8wwDwnEXZag==" + ADMIN_PASSWORD_GENERATED: "2024-01-01T00:00:00Z" + + - name: Install browser extension dependencies + run: npm ci + working-directory: apps/browser-extension + + - name: Install Playwright browsers + run: npx playwright install chromium --with-deps + working-directory: apps/browser-extension + + - name: Build and run E2E tests + run: xvfb-run --auto-servernum npm run test:e2e:build + working-directory: apps/browser-extension + env: + ALIASVAULT_API_URL: "http://localhost:5092" + + - name: Upload Playwright report + if: always() + uses: actions/upload-artifact@v4 + with: + name: browser-extension-playwright-report + path: apps/browser-extension/playwright-report/ + retention-days: 30 + + - name: Upload test results + if: always() + uses: actions/upload-artifact@v4 + with: + name: browser-extension-playwright-test-results + path: apps/browser-extension/tests/test-results/ + retention-days: 30