The component-test CLI (already in scope) should perform composition programmatically via the wac-graph crate rather than shelling out to wac with a checked-in .wac script.
Rationale (from the prototype/ work):
- The L2 topology is a fixed shape: instantiate provider → wire suite's
test-context import → re-export tests, test-context, factory → (optionally) plug bundle into a runner core. A programmatic graph is simpler and less error-prone than templating a DSL.
wac plug of provider into suite "succeeds" but silently drops the provider's factory/test-context exports; the resulting bundle then fails runner linking with the opaque type mismatch in instance export 'context'. The tool can make the correct topology the only expressible one and turn residual failures into domain errors (e.g. "suite bundle missing test-context").
- Bundle-then-plug remains the conceptual model (bundles are distributable artifacts); the tool should still be able to emit the intermediate bundle for interop with plain
wac-based workflows.
Reference: prototype/bundle.wac + prototype/README.md findings.
The
component-testCLI (already in scope) should perform composition programmatically via thewac-graphcrate rather than shelling out towacwith a checked-in.wacscript.Rationale (from the
prototype/work):test-contextimport → re-exporttests,test-context,factory→ (optionally) plug bundle into a runner core. A programmatic graph is simpler and less error-prone than templating a DSL.wac plugof provider into suite "succeeds" but silently drops the provider'sfactory/test-contextexports; the resulting bundle then fails runner linking with the opaquetype mismatch in instance export 'context'. The tool can make the correct topology the only expressible one and turn residual failures into domain errors (e.g. "suite bundle missing test-context").wac-based workflows.Reference:
prototype/bundle.wac+prototype/README.mdfindings.