Skip to main content

CHANGELOG.md

# Changelog

All notable changes to **evoq-testkit** are documented here.

## [0.1.1] - 2026-07-03

### Fixed

- Track evoq 1.23's module rename: dispatch through `evoq_command_router`
  instead of the removed `evoq_dispatcher`. Under evoq >= 1.23 the Layer B
  harness (`evoq_cmd_case`) crashed `{undef, evoq_dispatcher:dispatch/2}` on
  every command; now green against evoq 1.23.0. Consumers on `evoq ~> 1.19`
  that resolve to 1.23 (e.g. hecate-parksim) need this.

## [0.1.0]

### Added

- `evoq_aggregate_spec` (Layer A): sequence-driven pure aggregate test spec.
  Inject a command sequence; after each command assert expected events, no
  unexpected events (exact match), no failure (or the expected error reason),
  and a state predicate. State threads via `apply/2`. Two forms: tuple-list
  `run/3` and an eager builder (`new`/`given_events`/`exec`/`emits`/`state`/
  `fails_with`/`done`). Pure — no store, no processes.
- Self-tests covering the happy paths, state threading, `given_events`
  seeding, and every failure mode (the spec must fail loudly when an
  expectation is violated).