9edcbfc5de
Make job/CV comparisons language-aware and filter recruitment noise. Improve responsive career navigation, shared spacing, dashboard priorities, settings, localized workspace controls, and portable browser tests.
60 lines
2.3 KiB
TypeScript
60 lines
2.3 KiB
TypeScript
import { defineConfig, devices, chromium } from "@playwright/test";
|
|
import os from "node:os";
|
|
import path from "node:path";
|
|
|
|
const apiUrl = "http://localhost:5302";
|
|
const appUrl = "http://localhost:3300";
|
|
const dataRoot = path.join(os.tmpdir(), `jobtracker-e2e-${process.pid}-${Date.now().toString(36)}`);
|
|
const reuseServers = process.env.PLAYWRIGHT_REUSE_SERVERS === "true";
|
|
const useStaticExport = process.env.PLAYWRIGHT_STATIC_EXPORT === "true";
|
|
const quote = (value: string) => `"${value.replaceAll('"', '\\"')}"`;
|
|
const nodeCommand = quote(process.execPath);
|
|
const dotnetCommand = quote(process.env.DOTNET_HOST_PATH || "dotnet");
|
|
const nextCommand = quote(path.resolve("node_modules/next/dist/bin/next"));
|
|
const exportServerCommand = quote(path.resolve("scripts/serve-export.mjs"));
|
|
|
|
export default defineConfig({
|
|
testDir: "./e2e",
|
|
fullyParallel: false,
|
|
workers: 1,
|
|
retries: process.env.CI ? 1 : 0,
|
|
reporter: process.env.CI ? "github" : "list",
|
|
use: {
|
|
baseURL: appUrl,
|
|
trace: "retain-on-failure",
|
|
screenshot: "only-on-failure",
|
|
},
|
|
projects: [{ name: "chromium", use: { ...devices["Desktop Chrome"] } }],
|
|
webServer: [
|
|
{
|
|
command: `${dotnetCommand} run --no-build --configuration Release --project ../JobTrackerApi/JobTrackerApi.csproj --urls http://localhost:5302`,
|
|
url: `${apiUrl}/health`,
|
|
timeout: 120_000,
|
|
reuseExistingServer: reuseServers,
|
|
env: {
|
|
ASPNETCORE_ENVIRONMENT: "Development",
|
|
Auth__Require: "true",
|
|
Auth__JwtKey: "e2e-only-key-at-least-thirty-two-characters-long",
|
|
Auth__AdminEmail: "e2e@example.test",
|
|
Auth__AdminPassword: "E2ePassword123!",
|
|
Auth__AllowRegistration: "false",
|
|
App__Version: "e2e-verification",
|
|
App__CommitSha: "e2e1234",
|
|
Cors__Origins__0: appUrl,
|
|
Data__Root: dataRoot,
|
|
HttpsRedirection__Enabled: "false",
|
|
CV_PDF_BROWSER_PATH: chromium.executablePath(),
|
|
},
|
|
},
|
|
{
|
|
command: useStaticExport
|
|
? `${nodeCommand} ${nextCommand} build && ${nodeCommand} ${exportServerCommand}`
|
|
: `${nodeCommand} ${nextCommand} dev --webpack --hostname localhost --port 3300`,
|
|
url: appUrl,
|
|
timeout: 120_000,
|
|
reuseExistingServer: reuseServers,
|
|
env: { NEXT_PUBLIC_API_BASE_URL: `${apiUrl}/api` },
|
|
},
|
|
],
|
|
});
|