Back to Dify

Testing Review Rules

.agents/skills/frontend-code-review/references/testing.md

1.16.02.0 KB
Original Source

Testing Review Rules

web/docs/test.md is the canonical frontend testing policy. Use this file only to translate that policy into review findings.

Request Missing Tests When Risk Justifies Them

Flag missing coverage when a change alters a reachable contract such as:

  • User interaction, navigation, form submission, validation, or permissions.
  • Query or mutation behavior, URL state, persistence, or one-shot signals.
  • Loading, error, empty, and recovery states that users can encounter.
  • Accessibility-critical labels, keyboard flow, focus, disabled state, or overlay behavior.
  • A regression-prone business rule or bug fix that can be reproduced through a public boundary.

Do not request tests for mechanical changes, pass-through wrappers, implementation details, or visual-only styling unless they affect behavior. Low coverage alone is not a finding.

Flag Low-Value or Fragile Tests

Flag tests that:

  • Assert internal state, refs, hook usage, effect dependencies, private DOM structure, or cosmetic classes.
  • Exist only to render a component, exercise a prop, or cover generic invalid inputs without a product scenario.
  • Mock away the behavior under review or use mocks that do not match the public contract.
  • Add production data-testid attributes where semantic markup would work.
  • Use fake timers without timer behavior, leave async work unawaited, or leak shared state.
  • Duplicate a contract already protected at a more useful owner boundary.

Review the Test Boundary

  • Prefer semantic queries and accessible names.
  • Prefer real feature components when integration semantics matter.
  • Allow intentional child or provider mocks when setup would dominate the test and that boundary is covered independently.
  • Do not accept semantically inaccurate mocks of Dify UI or legacy base primitives.
  • Require a real-browser or visual verification plan when happy-dom cannot represent the risk.

Treat test quality, determinism, and regression value as the review criteria. Do not use test count or coverage percentage as a proxy for quality.