diff --git a/packages/html-reporter/.gitignore b/packages/html-reporter/.gitignore index a547bf36d8..1e81c075b8 100644 --- a/packages/html-reporter/.gitignore +++ b/packages/html-reporter/.gitignore @@ -7,6 +7,7 @@ yarn-error.log* pnpm-debug.log* lerna-debug.log* +.env node_modules dist dist-ssr diff --git a/packages/html-reporter/playwright.config.ts b/packages/html-reporter/playwright.config.ts index 2d379c65a4..84e5824d6d 100644 --- a/packages/html-reporter/playwright.config.ts +++ b/packages/html-reporter/playwright.config.ts @@ -15,6 +15,7 @@ */ import type { PlaywrightTestConfig } from '@playwright/test'; +import path from 'path'; import { devices } from '@playwright/test'; const config: PlaywrightTestConfig = { @@ -36,12 +37,46 @@ const config: PlaywrightTestConfig = { baseURL: 'http://localhost:3101/tests.html', trace: 'on-first-retry', }, - projects: [ - { - name: 'chromium', - use: { ...devices['Desktop Chrome'] }, - }, - ], + projects: [ ], }; +if (process.env.REBASE) { + require('dotenv').config({ + path: path.join(__dirname, '.env'), + }); + + if (!process.env.TEST_WORKER_INDEX) { + // eslint-disable-next-line no-console + console.log(`Running against service: ${process.env.SERVICE_URL}`); + } + + config.timeout = 600000; + const configurations = [ + { os: 'windows', platform: 'win32' }, + { os: 'linux', platform: 'linux' }, + { os: 'macos', platform: 'darwin' }, + ]; + for (const { os, platform } of configurations) { + config.projects.push({ + name: `service-${platform}`, + _screenshotsDir: `./__screenshots__/${platform}/chromium`, + use: { + ...devices['Desktop Chrome'], + connectOptions: { + timeout: 600000, + wsEndpoint: process.env.SERVICE_URL + `?os=${os}`, + }, + }, + }); + } +} else { + config.projects = [ + { + name: 'chromium', + _screenshotsDir: `./__screenshots__/${process.platform}/chromium`, + use: { ...devices['Desktop Chrome'] }, + }, + ]; +} + export default config;