mirror of
https://github.com/getpaseo/paseo.git
synced 2026-10-21 16:52:40 +00:00
* test(app): consolidate Playwright journeys * test(app): stabilize consolidated Playwright flows * test(app): make streaming dependencies explicit * test(app): await profile feature persistence * test(app): sample only actual workspace tabs
54 lines
1.7 KiB
TypeScript
54 lines
1.7 KiB
TypeScript
import { defineConfig, devices } from "@playwright/test";
|
|
|
|
// E2E_METRO_PORT is set dynamically by global-setup.ts after finding a free port
|
|
// This allows multiple test runs in parallel across different worktrees
|
|
const baseURL =
|
|
process.env.E2E_BASE_URL ?? `http://localhost:${process.env.E2E_METRO_PORT ?? "8081"}`;
|
|
const relayDeploymentSpec = "**/relay-deployment-reconnect.real.spec.ts";
|
|
|
|
function videoMode(): "on" | "on-first-retry" | "retain-on-failure" {
|
|
if (process.env.E2E_RECORD_VIDEO === "1") return "on";
|
|
if (process.env.CI) return "on-first-retry";
|
|
return "retain-on-failure";
|
|
}
|
|
|
|
export default defineConfig({
|
|
testDir: "./e2e/browser",
|
|
globalSetup: "./e2e/support/global-setup.ts",
|
|
timeout: 60_000,
|
|
expect: {
|
|
timeout: 10_000,
|
|
},
|
|
// Files run concurrently, while each worker owns its daemon state. Keeping a
|
|
// spec on one worker avoids repeating its file-level setup across daemons.
|
|
fullyParallel: false,
|
|
workers: Number(process.env.E2E_WORKERS ?? (process.env.CI ? "2" : "1")),
|
|
retries: process.env.CI ? 1 : 0,
|
|
reporter: [["list"]],
|
|
use: {
|
|
baseURL,
|
|
trace: process.env.CI ? "on-first-retry" : "retain-on-failure",
|
|
screenshot: "only-on-failure",
|
|
video: videoMode(),
|
|
},
|
|
projects: [
|
|
{
|
|
name: "browser",
|
|
testIgnore: ["**/*.real.spec.ts"],
|
|
use: { ...devices["Desktop Chrome"] },
|
|
},
|
|
{
|
|
name: "real-provider",
|
|
testMatch: ["**/*.real.spec.ts"],
|
|
testIgnore: [relayDeploymentSpec],
|
|
use: { ...devices["Desktop Chrome"] },
|
|
},
|
|
{
|
|
name: "relay-deployment",
|
|
testMatch: [relayDeploymentSpec],
|
|
use: { ...devices["Desktop Chrome"] },
|
|
},
|
|
],
|
|
// Note: Metro is started by global-setup.ts on a dynamic port to allow parallel test runs
|
|
});
|