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;