Skip to content

v0.32.0

@jeremydmiller jeremydmiller tagged this 08 Oct 10:53
A pre-1.0 release with a behaviour change, which is why the minor moves.

Changed:
- A Gherkin arrange fills unspecified members through the shared policy
  instead of default(T) (#421): an unspecified Guid is a fresh id rather than
  Guid.Empty, and a non-nullable string is "" rather than null.
  DefaultValues keeps the old rule for a suite that depends on it.
- import-event-model writes a stub's fields when the model names them (#422):
  positional records typed from a step's declaration or a test's sample, an
  undeclared identity as a Guid. Field-less only when the model names none.

Added:
- Partial objects (#416, #417-#420): Specify<T>() and partial tables build,
  match and render only the members a spec names; any-order, contains and
  absent event sets; Gherkin results grids and steps; BOBCAT032 checks table
  columns and With(x => x.Member) paths at compile time (#415).
- Declared defaults (#421): DeclaredDefaults.For<T, TMember>(x => x.Member,
  value), and PartialObjects.UnspecifiedValues for a process-wide policy.
- A Guid reads as the variable it was declared as: `var theAppointment =
  Guid.NewGuid();` renders as theAppointment.
- Supervisor: WorkerConnectionStrings hands each worker ConnectionStrings__{name}
  (#414), the Aspire convention.
- import-event-model reads emlang as published models write it (#422): several
  documents, short-form slices, long keys, non-string props, test values,
  processor slices.
- bobcat run / preview / pick / watch, with run the default command.
- Values in specifications, ObjectSetVerification, notes.

Fixed:
- SpecOutput wrote ANSI escape codes into test output on GitHub Actions.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_017DbTkhs3JxSMCWasTzPdRq
Assets 2
Loading