playwright.config.ts 1.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243
  1. import { defineConfig, devices } from "@playwright/test"
  2. const port = Number(process.env.PLAYWRIGHT_PORT ?? 3000)
  3. const baseURL = process.env.PLAYWRIGHT_BASE_URL ?? `http://localhost:${port}`
  4. const serverHost = process.env.PLAYWRIGHT_SERVER_HOST ?? "localhost"
  5. const serverPort = process.env.PLAYWRIGHT_SERVER_PORT ?? "4096"
  6. const command = `bun run dev -- --host 0.0.0.0 --port ${port}`
  7. const reuse = !process.env.CI
  8. export default defineConfig({
  9. testDir: "./e2e",
  10. outputDir: "./e2e/test-results",
  11. timeout: 60_000,
  12. expect: {
  13. timeout: 10_000,
  14. },
  15. fullyParallel: true,
  16. forbidOnly: !!process.env.CI,
  17. retries: process.env.CI ? 2 : 0,
  18. reporter: [["html", { outputFolder: "e2e/playwright-report", open: "never" }], ["line"]],
  19. webServer: {
  20. command,
  21. url: baseURL,
  22. reuseExistingServer: reuse,
  23. timeout: 120_000,
  24. env: {
  25. VITE_OPENCODE_SERVER_HOST: serverHost,
  26. VITE_OPENCODE_SERVER_PORT: serverPort,
  27. },
  28. },
  29. use: {
  30. baseURL,
  31. trace: "on-first-retry",
  32. screenshot: "only-on-failure",
  33. video: "retain-on-failure",
  34. },
  35. projects: [
  36. {
  37. name: "chromium",
  38. use: { ...devices["Desktop Chrome"] },
  39. },
  40. ],
  41. })