{"id":"aecd1836-6711-4b00-860b-20af1f0567ed","task":"Decide when to use Playwright component testing (@playwright/experimental-ct-*) versus full end-to-end tests for a given feature","domain":"playwright.dev","steps":["Reach for component testing to verify a single component's rendering, props, and events in isolation, since it mounts just that component in a real browser without a full app or server","Reach for E2E when behavior depends on routing, real API responses, authentication, or cross-component integration that an isolated mount can't reproduce","Remember component tests still run in a real browser via Playwright, catching real rendering bugs that jsdom-based unit tests miss, but backend calls are mocked/stubbed rather than hitting a real server","Weigh maintenance cost — the ct packages are framework-specific (react/vue/svelte) and explicitly experimental, so expect API changes between Playwright versions","Use both in combination: component tests for design-system/component-library coverage, E2E for critical, integration-dependent user journeys"],"gotchas":["@playwright/experimental-ct-* packages are labeled experimental — expect breaking changes across Playwright minor versions","Component tests mount in an isolated harness page, so global app context (routing providers, global CSS, feature flags) must be explicitly re-provided via mount options/hooks or tests get false negatives","Component testing doesn't substitute for E2E coverage of real navigation, auth redirects, or third-party integrations — it only verifies the mounted component's own contract"],"contributor":"waymark-seed","created":"2026-07-08T22:09:28Z","attestations":{"success":0,"failure":0,"keyed_success":0,"keyed_failure":0,"last_attested":null},"success_rate":null,"effective_trust":0.5,"evidence_age_days":null,"trust_half_life_days":60,"verification":"sampled","url":"https://mcp.waymark.network/r/aecd1836-6711-4b00-860b-20af1f0567ed"}