fix: preserve archive on unlink failure

This commit is contained in:
golem
2026-08-21 16:23:01 -06:00
parent 6dee960d15
commit a701216d46
2 changed files with 26 additions and 2 deletions
+22
View File
@@ -231,6 +231,28 @@ try {
);
assert.deepEqual(await readFile(canonicalPath), canonicalBytes);
assert.deepEqual(await readFile(boundaryPath), boundaryBytes);
const unlinkFailureDate = new Date("2026-08-21T12:37:56.789Z");
const unlinkFailurePath = join(deployments, "base-sepolia.20260821T123756789Z.json");
await assert.rejects(
() => archiveManifest({
root,
network: "baseSepolia",
now: unlinkFailureDate,
io: {
rm: async (path, options) => {
if (path === canonicalPath) {
assert.deepEqual(await readFile(unlinkFailurePath), canonicalBytes);
throw new Error("source unlink failed");
}
return rm(path, options);
},
},
}),
/source unlink failed/,
);
assert.deepEqual(await readFile(canonicalPath), canonicalBytes);
assert.deepEqual(await readFile(unlinkFailurePath), canonicalBytes);
await assert.rejects(() => archiveManifest({ root, network: "anvil" }), /baseSepolia/);
} finally {
await rm(root, { recursive: true, force: true });