Просмотр исходного кода

Run tests in guestMode in all browsers

Shun Miyazawa 1 год назад
Родитель
Сommit
ce2bcc7c30
2 измененных файлов с 20 добавлено и 7 удалено
  1. 11 1
      .github/workflows/reusable-app-prod.yml
  2. 9 6
      apps/app/playwright.config.ts

+ 11 - 1
.github/workflows/reusable-app-prod.yml

@@ -353,7 +353,7 @@ jobs:
     strategy:
       fail-fast: false
       matrix:
-        browser: [chromium, chromium/guest-mode, firefox, webkit]
+        browser: [chromium, firefox, webkit]
         shard: [1/2, 2/2]
 
     services:
@@ -440,6 +440,16 @@ jobs:
         MONGO_URI: mongodb://mongodb:27017/growi-playwright
         ELASTICSEARCH_URI: http://localhost:${{ job.services.elasticsearch.ports['9200'] }}/growi
 
+    - name: Playwright Run (--project=${browser}/guest-mode)
+      if: ${{ matrix.browser == 'chromium' }}
+      working-directory: ./apps/app
+      run: |
+        yarn playwright test --project=${{ matrix.browser }}/guest-mode --shard=${{ matrix.shard }}
+      env:
+        HOME: /root # ref: https://github.com/microsoft/playwright/issues/6500
+        MONGO_URI: mongodb://mongodb:27017/growi-playwright
+        ELASTICSEARCH_URI: http://localhost:${{ job.services.elasticsearch.ports['9200'] }}/growi
+
     - name: Slack Notification
       uses: weseek/ghaction-slack-notification@master
       if: failure()

+ 9 - 6
apps/app/playwright.config.ts

@@ -1,12 +1,19 @@
 import fs from 'node:fs';
 import path from 'node:path';
 
-import { defineConfig, devices } from '@playwright/test';
+import { defineConfig, devices, type Project } from '@playwright/test';
 
 const authFile = path.resolve(__dirname, './playwright/.auth/admin.json');
 
 const storageState = fs.existsSync(authFile) ? authFile : undefined;
 
+const supportedBrowsers = ['chromium', 'firefox', 'webkit'];
+const projectsForGuestMode: Array<Project> = supportedBrowsers.map(browser => ({
+  name: `${browser}/guest-mode`,
+  use: { ...devices['Desktop Chrome'] },
+  testMatch: /21-basic-features-for-guest\/.*\.spec\.ts/,
+}));
+
 /**
  * Read environment variables from file.
  * https://github.com/motdotla/dotenv
@@ -64,11 +71,7 @@ export default defineConfig({
       dependencies: ['setup'],
     },
 
-    {
-      name: 'chromium/guest-mode',
-      use: { ...devices['Desktop Chrome'] },
-      testMatch: /21-basic-features-for-guest\/.*\.spec\.ts/,
-    },
+    ...projectsForGuestMode,
 
     {
       name: 'chromium',