The catalogue is named or absent, the scanner reads both key orders, the loader has unit tests
Review findings: a sibling-path fallback read a catalogue the receipt never claimed; a manifest literal naming its version first slipped the fence; the shared loader thirteen beds install through had no test short of a lab run.
This commit is contained in:
@@ -16,8 +16,9 @@ import { catalogueIsPresent, catalogueDir } from "./integration/harness.ts";
|
||||
* So: a manifest literal in a bed that names a catalogue module is refused, unless the bed is
|
||||
* listed below with the reason it still carries one. The list is the debt, and it only shrinks.
|
||||
*
|
||||
* What this reads: `module: "<name>"` and `"module": "<name>"` with a `version` close behind, in
|
||||
* test/integration/*.test.ts, against the catalogue's directory names. A bed that hid the name
|
||||
* What this reads: `module: "<name>"` and `"module": "<name>"` with a `version` close by, either
|
||||
* order, in test/integration/*.test.ts, against the catalogue's directory names. Skipped aloud
|
||||
* where MESH_LAB_CATALOG is unset — a skip is reported, never silent. A bed that hid the name
|
||||
* behind a computed string would pass — this is a fence, not a proof, and the reviewer of a bed
|
||||
* that builds a manifest inline is the proof.
|
||||
*/
|
||||
@@ -88,6 +89,10 @@ test("a bed that installs a catalogue module reads the catalogue", (t) => {
|
||||
for (const m of text.matchAll(/(?:^|[\s{,])(?:"module"|module)\s*:\s*"([a-z0-9.-]+)"[^}]{0,160}?(?:"version"|version)\s*:/g)) {
|
||||
if (names.has(m[1]!)) found.add(m[1]!);
|
||||
}
|
||||
// And the other order — a literal that names its version first.
|
||||
for (const m of text.matchAll(/(?:^|[\s{,])(?:"version"|version)\s*:\s*"[^"]*"[^}]{0,160}?(?:"module"|module)\s*:\s*"([a-z0-9.-]+)"/g)) {
|
||||
if (names.has(m[1]!)) found.add(m[1]!);
|
||||
}
|
||||
const declared = STILL_CARRIED[file];
|
||||
for (const name of [...found].sort()) {
|
||||
if (declared?.modules.includes(name)) continue;
|
||||
|
||||
Reference in New Issue
Block a user