Promote development → master (initial production release: pre-release line + Stage 18) #104
@@ -1,5 +1,6 @@
|
||||
node_modules/
|
||||
dist/
|
||||
dist-e2e/
|
||||
.svelte-kit/
|
||||
*.tsbuildinfo
|
||||
test-results/
|
||||
|
||||
+13
-4
@@ -1,7 +1,11 @@
|
||||
import { defineConfig, devices } from '@playwright/test';
|
||||
|
||||
// Hermetic e2e: Playwright boots the Vite dev server in `mock` mode (the in-memory
|
||||
// fake transport), so the smoke needs no backend/gateway/Postgres.
|
||||
// Hermetic e2e: Playwright builds the app in `mock` mode (the in-memory fake transport, so the
|
||||
// smoke needs no backend/gateway/Postgres) and serves the MINIFIED artifact via `vite preview`,
|
||||
// rather than the dev server. Running against the production-minified bundle is what the contour
|
||||
// ships, so the e2e now catches minification-only regressions — e.g. a reactive dependency the
|
||||
// minifier drops — which the unminified dev server silently hid. The build goes to dist-e2e/ so it
|
||||
// never clobbers the dist/ the bundle-size gate measures.
|
||||
export default defineConfig({
|
||||
testDir: './e2e',
|
||||
fullyParallel: true,
|
||||
@@ -13,10 +17,15 @@ export default defineConfig({
|
||||
trace: 'on-first-retry',
|
||||
},
|
||||
webServer: {
|
||||
command: 'pnpm exec vite --mode mock --port 4173 --strictPort',
|
||||
// `--base /` overrides the production relative base (`./`, which lets the gateway serve the SPA
|
||||
// under /app/ and /telegram/): served from the preview root, an absolute base keeps assets at
|
||||
// /assets/ so the SPA-fallback also boots a subpath like /telegram/. Base only prefixes asset
|
||||
// URLs, so the minified JS under test is identical to the contour's.
|
||||
command:
|
||||
'pnpm exec vite build --mode mock --base / --outDir dist-e2e --emptyOutDir && pnpm exec vite preview --outDir dist-e2e --port 4173 --strictPort',
|
||||
url: 'http://localhost:4173',
|
||||
reuseExistingServer: !process.env.CI,
|
||||
timeout: 60_000,
|
||||
timeout: 120_000,
|
||||
},
|
||||
// Run the same hermetic specs in Chromium and WebKit (Safari's engine) so the UI is
|
||||
// exercised in both rendering/JS engines. Note: desktop WebKit on Linux does not
|
||||
|
||||
Reference in New Issue
Block a user