mix tessera.golden (Noizu.Tessera v0.2.0)

Copy Markdown View Source

Rewrites the checked-in goldens under test/fixtures/ from the CURRENT generators:

  • persona_card.contract.golden.mjs — the generated JS contract module (CONTRACT.md §2), the wire interface every consumer compiles against;
  • persona_card.cem.json — the Custom Elements Manifest golden;
  • spike_widget.element.golden.mjs — the generated Lit element module (from the same hand-built spec LitCodegenTest pins).
  • derived_widget.element.golden.mjs — the generated DERIVED Lit element module (fresh-tag derivation, EXTENSION-CONTRACT.md §5.8; from the hand-built merged spec DerivedWidgetSpec).

The ExUnit suite compares generator output against these files byte-for-byte and FAILS when they are missing or stale — it never bootstraps them (a self-bootstrapping golden can never fail, which is exactly why the old contract golden was vacuous on fresh checkouts).

Regeneration is therefore an explicit, reviewed step. After an INTENTIONAL generator change:

MIX_ENV=test mix tessera.golden

then review the diff by eye against CONTRACT.md §2 before committing — the contract module is the wire interface, and a silent codegen change breaks every consumer. (MIX_ENV=test compiles test/support, where the PersonaCard fixture spec lives.)

Run with --check to only verify the goldens are current (CI-style, no write).