CodeVetter · Repo Unpack · Feature catalog
avajs/ava
AVA's user surface combines CLI selection and execution controls with an explicit test API. Tests support modifiers, hooks, macros, asynchronous completion, execution context, and assertions. Snapshot updates, watch interactions, debugging, TAP output, and TypeScript integration extend the development workflow. Shared-worker plugins provide coordination across otherwise isolated test files.
- The default CLI command accepts patterns, directories, and paths with line-number suffixes; --match filters titles, while --serial, --concurrency, --fail-fast, and --no-worker-threads control execution.
- ava debug selects one file and exposes inspector host, port, and break options; ava reset-cache removes entries beneath the project's AVA cache and exits.
- createChain() implements serial, only, skip, failing, todo, skipIf(), and runIf(), plus before/beforeEach/after/afterEach hooks and after-hook always modifiers.
- test.macro() freezes exec/title definitions; parseTestArgs() accepts macro arguments, generates titles, and normalizes title whitespace.
- ExecutionContext supplies log(), plan(), timeout()/timeout.clear(), teardown(), context access, and t.try() results with explicit commit/discard operations.
- Assertions include identity and deep comparisons, sync/async exception expectations, snapshots, truth tests, and regex checks; snapshot assertions are prohibited in hooks.
- Watch mode supports reruns, snapshot updates, glob and title prompts, and dependency-based file selection; CLI watch mode is rejected in CI and during debugging.
- AVA offers terminal/TAP reporting, an optional @ava/typescript provider, and ava/plugin shared workers with publish/subscribe messaging; shared workers require worker threads.