7.6 KiB
7.6 KiB
E2E Skip Registry (2026-02-13)
Objective
Determine why tests are skipped and classify each skip source as one of:
- Wrong environment/configuration
- Product bug
- Missing feature/test preconditions
- Intentional test routing (non-bug)
Evidence Sources
- Full rerun baseline (previous run):
1500 passed / 62 failed / 50 skipped - Targeted runtime census (Chromium):
set -a && source .env && set +a && \
PLAYWRIGHT_COVERAGE=0 PLAYWRIGHT_HTML_OPEN=never \
npx playwright test tests/manual-dns-provider.spec.ts tests/core/admin-onboarding.spec.ts \
--project=chromium --reporter=json > /tmp/skip-census-targeted.json 2>&1
- Static skip directive census in tests:
grep -RInE "test\\.skip|describe\\.skip|test\\.fixme|describe\\.fixme" tests/
- Project routing behavior from
playwright.config.js.
Confirmed Skip Sources
1) Manual DNS provider suite skips (Confirmed)
- File:
tests/manual-dns-provider.spec.ts - Runtime evidence (Chromium targeted run):
16 skipped - Skip type: explicit
test.describe.skip(...)andtest.skip(...) - Classification: Missing feature/test preconditions (technical debt skip)
- Why:
- Tests require deterministic DNS challenge records and UI states that are not guaranteed in default E2E flow.
- One skip reason is explicitly tied to absent visible challenge records (
No copy buttons found - requires DNS challenge records to be visible).
- Owner: Playwright Dev + Frontend Dev
- Priority: P0 for critical-path coverage, P1 for full suite parity
- Recommended action:
- Create deterministic fixtures/seed path for manual DNS challenge state.
- Re-enable blocks incrementally and validate across all three browser projects.
2) Conditional Cerberus skip in admin onboarding (Confirmed source, condition-dependent runtime)
- File:
tests/core/admin-onboarding.spec.ts - Skip directive:
test.skip(true, 'Cerberus must be enabled to access emergency token generation UI') - Classification: Wrong environment/configuration (when triggered)
- Why:
- This is a hard environment gate. If Cerberus is disabled or inaccessible, test intentionally skips.
- Owner: QA + Backend Dev
- Priority: P1
- Recommended action:
- Split tests into:
- Cerberus-required suite (explicit env contract), and
- baseline onboarding suite (no Cerberus dependency).
- Add preflight assertion that reports config mismatch clearly instead of silent skip where possible.
- Split tests into:
3) Security project routing behavior (Intentional, non-bug)
- Source:
playwright.config.js - Behavior:
- Browser projects (
chromium,firefox,webkit) usetestIgnorefor**/security-enforcement/**and**/security/**. - Security coverage is handled by dedicated
security-testsproject.
- Browser projects (
- Classification: Intentional test routing (non-bug)
- Why:
- Prevents security suite execution duplication in standard browser projects.
- Owner: QA
- Priority: P2 (documentation only)
- Recommended action:
- Keep as-is; ensure CI includes explicit
security-testsproject execution in required checks.
- Keep as-is; ensure CI includes explicit
Current Assessment
Based on available runtime and source evidence, most observed skips are currently intentional skip directives in manual DNS provider tests rather than emergent engine bugs.
Distribution (current confirmed)
- Missing feature/preconditions debt: High (manual DNS blocks)
- Environment-gated skips: Present (Cerberus-gated onboarding path)
- Product bug-derived skips: Not yet confirmed from current skip evidence
- Config/routing-intentional non-runs: Present and expected (security project separation)
Actions to Close Phase 8.1
- Export full multi-project JSON report and enumerate all
status=skippedtests with file/title/annotations. - Map every skipped test to one of the four classes above.
- Open remediation tasks for all technical-debt skips (manual DNS first).
- Define explicit re-enable criteria and target command per skip cluster.
Re-enable Queue (Initial)
-
tests/manual-dns-provider.spec.tsskipped blocks- Unblock by deterministic challenge fixture + stable locators
- Re-enable command:
npx playwright test tests/manual-dns-provider.spec.ts --project=chromium --project=firefox --project=webkit -
Cerberus-gated onboarding checks
- Unblock by environment contract enforcement or test split
- Re-enable command:
npx playwright test tests/core/admin-onboarding.spec.ts --project=chromium --project=firefox --project=webkit
Exit Criteria for This Registry
- Confirmed dominant skip source with runtime evidence
- Classified skips into environment vs missing feature/test debt vs routing-intentional
- Full-suite skip list fully enumerated from JSON (all 50)
- Owner + ETA assigned per skipped test block
Post-Edit Validation Status (Phase 3 + relevant Phase 4)
Applied changes
tests/manual-dns-provider.spec.ts- Removed targeted
describe.skip/test.skipusage so suites execute. - Added deterministic preconditions using existing DNS fixtures (
mockManualChallenge,mockExpiredChallenge,mockVerifiedChallenge). - Added test-scoped route mocks with cleanup parity (
page.route+page.unroute).
- Removed targeted
tests/core/admin-onboarding.spec.ts- Removed Cerberus-dependent
Emergency token can be generatedfrom browser-safe core onboarding suite.
- Removed Cerberus-dependent
tests/security/security-dashboard.spec.ts- Added
Emergency token can be generatedunder security suite ownership. - Added
security-state-pre/security-state-postannotations and pre/post state drift checks.
- Added
Concrete command results
- Pass 1
npx playwright test tests/manual-dns-provider.spec.ts tests/core/admin-onboarding.spec.ts \
--project=chromium --project=firefox --project=webkit \
--grep "Provider Selection Flow|Manual Challenge UI Display|Copy to Clipboard|Verify Button Interactions|Accessibility Checks|Admin Onboarding & Setup" \
--grep-invert "Emergency token can be generated" --reporter=json
- Parsed stats:
expected=43,unexpected=30,skipped=0 - Intent-scoped skip census (
chromium|firefox|webkit+ targeted files): 0 skipped / 0 did-not-run skip-reasonannotations in this run: 0
- Pass 2
npx playwright test tests/manual-dns-provider.spec.ts \
--project=chromium --project=firefox --project=webkit \
--grep "Manual DNS Challenge Component Tests|Manual DNS Provider Error Handling" --reporter=json
- Parsed stats:
expected=1,unexpected=15,skipped=0 - Intent-scoped skip census (
chromium|firefox|webkit+ manual DNS file): 0 skipped / 0 did-not-run skip-reasonannotations in this run: 0
- Security-suite ownership + anti-duplication
npx playwright test tests/security/security-dashboard.spec.ts \
--project=security-tests --grep "Emergency token can be generated" --reporter=json
- Parsed stats:
unexpected=0,skipped=0 - Raw JSON evidence confirms
projectName: security-testsfor emergency token test execution. security-state-preandsecurity-state-postannotations captured.- Anti-duplication check:
CORE_COUNT=0intests/core/admin-onboarding.spec.tsSEC_COUNT=1acrosstests/security/**+tests/security-enforcement/**
- Route mock cleanup parity
tests/manual-dns-provider.spec.ts:ROUTES=3,UNROUTES=3.
Residual failures (for Phase 7)
- Skip debt objective for targeted scopes is met (
skipped=0anddid-not-run=0in intended combinations). - Remaining failures are assertion/behavior failures in manual DNS and onboarding flows and should proceed to Phase 7 remediation.