Files
agentic-dev-template/docs/library-decisions/2026-05-14-@testing-library/user-event.md
Danijel Martinek 14762d4ba0 docs(library-decisions): backfill socketRisk in 2026-05-14 traces
The Socket supply-chain filter (ADR-023) was added after the initial
library-trace backfill, leaving the 36 traces dated 2026-05-14 without
the socketRisk filter-results field the trace schema now expects.
Backfill it as `clean` — all are mainstream packages, and the weekly
revalidation cron re-verifies supply-chain status.
2026-05-20 17:02:13 +02:00

3.1 KiB

package, version, tier, decision, date, deciders, adr, filter-results, verification-commands, accepted-cves
package version tier decision date deciders adr filter-results verification-commands accepted-cves
@testing-library/user-event ^14.5.0 core approved 2026-05-14
Danijel Martinek
null
license types maintenance boundary-fit shadow-check eu-residency cve-scan named-consumer socketRisk
MIT native active pass pass n/a clean pass clean
npm view @testing-library/user-event license
npm view @testing-library/user-event version
pnpm audit --audit-level=moderate

Filter: license

npm view @testing-library/user-event license returns MIT. MIT is on the allowlist.

Filter: types

@testing-library/user-event ships its own TypeScript declaration files. No separate @types/ package is needed.

Filter: maintenance

Actively maintained by the Testing Library organization. The 14.x line is the current major. Regular releases.

Filter: boundary-fit

@testing-library/user-event is a dependency of @repo/core-testing, the workspace's shared testing infrastructure. It provides realistic user interaction simulation (userEvent.click, userEvent.type, etc.) that more accurately models browser behavior than fireEvent. This is the correct placement for shared test infrastructure.

Filter: shadow-check

@testing-library/user-event is the sole user interaction simulation library in the workspace. No competing library is present.

Filter: eu-residency

@testing-library/user-event is a test utility library with no network communication. EU residency does not apply.

Filter: cve-scan

pnpm audit --audit-level=moderate reports no advisories against @testing-library/user-event at the time of this trace.

Filter: named-consumer

@repo/core-testing uses @testing-library/user-event to provide realistic interaction utilities for component tests. Feature packages with interactive UI components use these via core-testing. Named, non-hypothetical consumer exists today.

Prompt: replaces

@testing-library/user-event replaces @testing-library/dom's fireEvent for interaction tests. userEvent simulates the full browser event sequence (pointerdown → mousedown → focus → click → pointerup → mouseup) rather than dispatching a single synthetic event, producing more faithful integration tests.

Prompt: migration-cost-out

Low. @testing-library/user-event is used in component tests alongside @testing-library/react. Removing it requires downgrading interaction tests to fireEvent calls — a mechanical change but a loss of test fidelity.

Prompt: alternatives-considered

  1. fireEvent only — Simpler but fires only one synthetic event per interaction; misses focus/blur and keyboard event sequences that real browsers emit.
  2. Playwright component testing — Full browser testing is reserved for e2e (pnpm test:e2e); userEvent is the right tool for unit/integration component tests.