Add self-contained e2e test harness with ephemeral PocketBase
Previously, 15 e2e tests were skipped because TEST_USER_EMAIL and TEST_USER_PASSWORD env vars weren't set. Now the test harness: - Starts a fresh PocketBase instance in /tmp on port 8091 - Creates admin user, collections, and API rules automatically - Seeds test user with period data for authenticated tests - Cleans up temp directory after tests complete Also fixes: - Override toggle tests now use checkbox role (not button) - Adds proper wait for OVERRIDES section before testing toggles - Suppresses document.cookie lint warning with explanation Test results: 64 e2e tests pass, 1014 unit tests pass Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
@@ -6,6 +6,13 @@ export default defineConfig({
|
||||
// Test directory for E2E tests
|
||||
testDir: "./e2e",
|
||||
|
||||
// Global setup/teardown for PocketBase harness
|
||||
globalSetup: "./e2e/global-setup.ts",
|
||||
globalTeardown: "./e2e/global-teardown.ts",
|
||||
|
||||
// Exclude vitest test files
|
||||
testIgnore: ["**/pocketbase-harness.test.ts"],
|
||||
|
||||
// Run tests in parallel
|
||||
fullyParallel: true,
|
||||
|
||||
@@ -37,10 +44,16 @@ export default defineConfig({
|
||||
projects: [{ name: "chromium", use: { ...devices["Desktop Chrome"] } }],
|
||||
|
||||
// Run dev server before starting tests
|
||||
// Note: POCKETBASE_URL is set by global-setup.ts for the test PocketBase instance
|
||||
webServer: {
|
||||
command: "pnpm dev",
|
||||
url: "http://localhost:3000",
|
||||
reuseExistingServer: !process.env.CI,
|
||||
timeout: 120 * 1000, // 2 minutes for Next.js to start
|
||||
env: {
|
||||
// Use the test PocketBase instance (port 8091)
|
||||
NEXT_PUBLIC_POCKETBASE_URL: "http://127.0.0.1:8091",
|
||||
POCKETBASE_URL: "http://127.0.0.1:8091",
|
||||
},
|
||||
},
|
||||
});
|
||||
|
||||
Reference in New Issue
Block a user