Unify trunk on main: initialization → main #3

Merged
jschoubben merged 95 commits from initialization into main 2026-09-05 01:13:46 +00:00
Showing only changes of commit 4d5b190db8 - Show all commits
+16 -12
View File
@@ -939,20 +939,24 @@ test("a route is a grant: a workload is reached by the name it asked for", {
// fails more visibly than a stale grant, so it must not survive the module leaving.
await mesh("unassign laptop storefront");
await mesh("push");
await new Promise((r) => setTimeout(r, 20_000));
// The provider has to have applied before the file means anything. **The mesh withdrawing a
// route and the machine acting on it are different things**, and a test that reads the file
// without checking the second reports the first wrongly whenever the machine is behind for any
// unrelated reason.
const applied = await mesh("status");
assert.doesNotMatch(applied, /anchor\s+(failed|refused)/,
`the provider did not apply, so what its file says is not what the mesh decided:\n${applied}`);
const after = await must("anchor", `cat /etc/frontdoor/routes.json`);
assert.doesNotMatch(after, /shop\.mesh\.test/,
// **Waited for, not slept through.** The mesh withdrawing a route and the machine acting on it
// are different things, and a fixed sleep between them tests whichever the clock happened to
// land on — this assertion passed twice and failed once on nothing but timing.
//
// A machine that has not applied yet is also not a machine that failed, so `status` cannot
// stand in for this: "not yet" and "never" look identical there, and only one of them is worth
// failing over.
let after = "";
let withdrawn = false;
for (let i = 0; i < 20 && !withdrawn; i++) {
after = await must("anchor", `cat /etc/frontdoor/routes.json`);
withdrawn = !after.includes("shop.mesh.test");
if (!withdrawn) await new Promise((r) => setTimeout(r, 3000));
}
assert.ok(withdrawn,
`the route outlived the module that asked for it:\n${after}\n\n` +
`what the mesh would send now:\n` +
`the machine did apply — this is what the mesh would send now:\n` +
`${(await on("anchor", `docker exec mesh-control /mesh-control plan anchor --files`)).out}`);
let gone = false;