Files
hq/02-DECISIONS/0093-a-fixture-that-runs-a-modules-runtime-carries-its-name.md

54 lines
2.5 KiB
Markdown

---
topic: checking it
status: accepted
date: 2026-09-21
deciders: jochen
reconstructed: false
extends: 02-DECISIONS/0089-a-bed-reads-the-catalogue-it-proves.md
---
# 93. A fixture that runs a module's runtime carries the module's name
## Context
[ADR 0089](0089-a-bed-reads-the-catalogue-it-proves.md) said a bed that needs less than a module
declares is a mesh test, and carries a name of its own. Twelve beds were to be renamed on that
basis ([issue 074](../04-ISSUES/074-a-mesh-test-wears-a-catalogue-modules-name/00-report.md)).
Reading how a module's tools are reached showed why they cannot be: the account the mesh issues
a module is scoped to `serve.<module>.*` from the manifest's name, and the runtime binds its tool
queues under the name baked into its image. A fixture named otherwise but running the real
runtime would be refused its own queues. The name is not a label; it is the tool namespace and
the broker scope.
## Considered Options
1. **Rename anyway, and rebuild each runtime under the fixture's name.** Rejected: a runtime built
under a false name proves nothing about the module and costs a build per bed.
2. **A fixture that runs a module's runtime carries the module's name, and therefore reads the
catalogue.** Adopted.
## Decision
A bed that runs a module's runtime installs the catalogue's manifest for that module and what it
requires — the vault for a `secret`, the route module for a route — and proves the mechanism
against the real module. A name of its own is for a fixture that runs no real runtime: a
declaration-only stub, a bare upstream image.
## Consequences
The mechanism beds become module beds with a mechanism inside them, which is more than they
were. What got harder: a bed that wanted a cut-down redis now raises the vault beside it; one that
wanted a sidecar without its server raises the server. Each conversion is a lab run, and the beds
still carrying a copy are declared with this reason until converted.
## How it is checked
The lab's inline-copy check refuses undeclared copies as before; the declared list's reason for
these beds names this record. Two beds converted with the vault beside them ran green.
## References
- [issue 074](../04-ISSUES/074-a-mesh-test-wears-a-catalogue-modules-name/00-report.md)
- [ADR 0089](0089-a-bed-reads-the-catalogue-it-proves.md), [ADR 0047](0047-a-module-runs-its-code-as-its-own-process-with-its-own-account.md)
- [`03-DESIGN/01-to-be/01-end-to-end-testing.md`](../03-DESIGN/01-to-be/01-end-to-end-testing.md)