32 lines
1.1 KiB
TypeScript
32 lines
1.1 KiB
TypeScript
import { defineConfig, devices } from "@playwright/test";
|
|
|
|
const apiMode = process.env.VITE_API_MODE === "mock" ? "mock" : "server";
|
|
const webServerPort = apiMode === "mock" ? 8889 : 8888;
|
|
const serverTestMatch = [
|
|
"**/server-mode-boundary.spec.ts",
|
|
"**/smoke.spec.ts",
|
|
"**/auth.spec.ts",
|
|
"**/accessibility-shell.spec.ts",
|
|
] as const;
|
|
const mockTestMatch = ["**/mock-preview-shell.spec.ts", "**/mock-mode-boundary.spec.ts"] as const;
|
|
|
|
export default defineConfig({
|
|
testDir: "./tests/e2e",
|
|
webServer: {
|
|
command: apiMode === "mock" ? "npm run dev:mock" : "npm run dev",
|
|
env: { VITE_API_MODE: apiMode },
|
|
url: `http://127.0.0.1:${webServerPort}`,
|
|
reuseExistingServer: !process.env.CI && apiMode === "server",
|
|
},
|
|
use: {
|
|
baseURL: `http://127.0.0.1:${webServerPort}`,
|
|
},
|
|
testMatch: apiMode === "mock" ? [...mockTestMatch] : [...serverTestMatch],
|
|
projects: [
|
|
{ name: "chromium", use: { ...devices["Desktop Chrome"] } },
|
|
{ name: "webkit", use: { ...devices["Desktop Safari"] } },
|
|
{ name: "mobile-chrome", use: { ...devices["Pixel 5"] } },
|
|
{ name: "mobile-safari", use: { ...devices["iPhone 12"] } },
|
|
],
|
|
});
|