# Testing Strategy

Mechanica now includes a Vitest-based automated test harness for the catalogue shell layer. Run `npm run test` for the deterministic suite, `npm run test:watch` during development, or `npm run validate` before shipping a milestone build.

The first coverage target is the catalogue's highest-risk logic: search normalisation, nested machine matching, combined filters, relevance ranking, sort aliases, availability filtering, and persisted favourite id filtering. These tests exercise the pure utilities without relying on browser timing or visual snapshots, which keeps failures actionable.

The registry contract test guards the production catalogue data itself. It verifies that the exported machine registry remains substantial, route-safe, uniquely addressable, sufficiently tagged, and spread across the major mechanical categories and learning difficulties.
