mirror of
https://github.com/maputnik/editor.git
synced 2026-07-08 23:17:26 +00:00
c3dd253737
Replace Cypress with Playwright for the end-to-end suite and drop
@shellygo/cypress-test-utils in favour of a hand-written MaputnikDriver
page object that keeps the fluent then(...).shouldX() assertion style
(now async). The InputAutocomplete component test moves to Vitest browser
mode using the Playwright provider.
- e2e/maputnik-driver.ts: driver + MaputnikAssertable over Playwright
- e2e/{fixtures,coverage,global-setup,global-teardown}.ts: test fixture,
istanbul coverage collection, and nyc report generation
- playwright.config.ts / vitest.config.ts
- Code coverage preserved: dev server is istanbul-instrumented, per-test
window.__coverage__ is merged via nyc into coverage/coverage-final.json
- CI: Cypress jobs replaced with Playwright; docker e2e runs against the
container via E2E_NO_WEBSERVER
- Remove Cypress deps, config and support files; update docs and .nycrc
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
47 lines
1.3 KiB
TypeScript
47 lines
1.3 KiB
TypeScript
import { defineConfig, devices } from "@playwright/test";
|
|
|
|
const isCI = !!process.env.CI;
|
|
// When the app is already served elsewhere (e.g. the docker e2e job) set
|
|
// E2E_NO_WEBSERVER=1 so Playwright does not start its own dev server.
|
|
const useExternalServer = !!process.env.E2E_NO_WEBSERVER;
|
|
const baseURL = process.env.E2E_BASE_URL ?? "http://localhost:8888/";
|
|
|
|
export default defineConfig({
|
|
testDir: "./e2e",
|
|
testMatch: "**/*.spec.ts",
|
|
globalSetup: "./e2e/global-setup.ts",
|
|
globalTeardown: "./e2e/global-teardown.ts",
|
|
fullyParallel: true,
|
|
forbidOnly: isCI,
|
|
retries: isCI ? 2 : 0,
|
|
reporter: isCI ? [["list"], ["html", { open: "never" }]] : "list",
|
|
use: {
|
|
baseURL,
|
|
trace: "on-first-retry",
|
|
},
|
|
projects: [
|
|
{
|
|
name: "chromium",
|
|
use: {
|
|
...devices["Desktop Chrome"],
|
|
launchOptions: {
|
|
// Allow WebGL (maplibre) to fall back to software rendering in headless.
|
|
args: [
|
|
"--disable-gpu",
|
|
"--enable-features=AllowSwiftShaderFallback,AllowSoftwareGLFallbackDueToCrashes",
|
|
"--enable-unsafe-swiftshader",
|
|
],
|
|
},
|
|
},
|
|
},
|
|
],
|
|
webServer: useExternalServer
|
|
? undefined
|
|
: {
|
|
command: "npm run start",
|
|
url: "http://localhost:8888/maputnik/",
|
|
reuseExistingServer: !isCI,
|
|
timeout: 120000,
|
|
},
|
|
});
|