Skip to content

Commit 4a5e0a0

Browse files
committed
fix(ci): align environment variables with local .env.test to fix 50% E2E failure rate
Root Cause Analysis: - Local tests: 100% pass rate with USE_MOCK_PURCHASE=true - CI tests: 50% pass rate WITHOUT USE_MOCK_PURCHASE - Missing env var caused CI to use REAL database/Stripe instead of mocks Changes: - Added USE_MOCK_PURCHASE=true (critical - enables mock purchase service) - Added NEXT_PUBLIC_USE_MOCK_PURCHASE=true (client-side flag) - Added PORT=3333 (server port) - Added BYPASS_UTM_VALIDATION=false (middleware behavior) - Added NEXT_PUBLIC_FF_PURCHASE_ENABLED=true (feature flag) - Added NEXT_PUBLIC_ENABLE_TEST_HARNESS=true (test utilities) - Added NEXT_PUBLIC_TEST_HARNESS_KEY (test auth) - Added EDGE_CONFIG vars (empty, for AB testing graceful fallback) Expected Impact: - 50% → ~100% pass rate in CI - Aligns CI environment exactly with local .env.test - Tests will use mock services consistently Ref: 100% local vs 50% CI = environment mismatch (not test code issue) Ref: lib/purchase/purchase-service.ts:16-19 (USE_MOCK_PURCHASE check)
1 parent e4cecd4 commit 4a5e0a0

File tree

1 file changed

+13
-0
lines changed

1 file changed

+13
-0
lines changed

.github/workflows/ci-v2.yml

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,7 @@ jobs:
2929
env:
3030
NODE_ENV: test
3131
NEXT_TELEMETRY_DISABLED: '1'
32+
PORT: '3333'
3233
DATABASE_URL: postgresql://postgres:postgres@localhost:5432/anthrasite_test
3334
DIRECT_URL: postgresql://postgres:postgres@localhost:5432/anthrasite_test
3435
CI_MOCK_STRIPE: 'true'
@@ -37,6 +38,18 @@ jobs:
3738
# E2E mode flags
3839
E2E: '1'
3940
NEXT_PUBLIC_E2E: 'true'
41+
# Mock purchase service (aligns with local .env.test)
42+
USE_MOCK_PURCHASE: 'true'
43+
NEXT_PUBLIC_USE_MOCK_PURCHASE: 'true'
44+
BYPASS_UTM_VALIDATION: 'false'
45+
# Feature flags
46+
NEXT_PUBLIC_FF_PURCHASE_ENABLED: 'true'
47+
# Test harness
48+
NEXT_PUBLIC_ENABLE_TEST_HARNESS: 'true'
49+
NEXT_PUBLIC_TEST_HARNESS_KEY: 'test-key-12345'
50+
# Edge config (empty for tests)
51+
EDGE_CONFIG: ''
52+
EDGE_CONFIG_BASE64_KEY: ''
4053
# Stripe test keys
4154
STRIPE_SECRET_KEY: ${{ secrets.STRIPE_SECRET_KEY }}
4255
NEXT_PUBLIC_STRIPE_PUBLISHABLE_KEY: ${{ secrets.NEXT_PUBLIC_STRIPE_PUBLISHABLE_KEY }}

0 commit comments

Comments
 (0)