Skip to content

Commit 2dc9c07

Browse files
committed
Wrap promote-failure test assertions in try/finally for cleanup
The clearManagedInstallFailure call was outside a finally block, so if assertions failed the singleton failure state would leak to subsequent tests. Signed-off-by: Sebastien Tardif <sebtardif@ncf.ca>
1 parent 82d2e4b commit 2dc9c07

1 file changed

Lines changed: 24 additions & 22 deletions

File tree

test/unit/binary.test.ts

Lines changed: 24 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -477,29 +477,31 @@ test("promoteManagedInstallBinary restores the previous binary when replacement
477477
/Failed to replace managed Patchloom binary/
478478
);
479479

480-
assert.deepEqual(operations, [
481-
"mkdir /managed/install/0.1.0/managed-bin",
482-
"rename /managed/install/0.1.0/managed-bin/patchloom -> /managed/install/0.1.0/managed-bin/patchloom.bak",
483-
"rename /managed/install/0.1.0/.staging/managed-bin/patchloom -> /managed/install/0.1.0/managed-bin/patchloom",
484-
"rename /managed/install/0.1.0/managed-bin/patchloom.bak -> /managed/install/0.1.0/managed-bin/patchloom",
485-
"mkdir /managed/storage",
486-
`write /managed/storage/${PATCHLOOM_MANAGED_INSTALL_FAILURE_FILE} => {\n \"stage\": \"replace\",\n \"reason\": \"replace-failed\",\n \"message\": \"Failed to replace managed Patchloom binary (simulated rename failure).\"\n}`
487-
]);
488-
489-
const status = await inspectManagedInstallStatus({
490-
installRoot: "/managed/install",
491-
version: "v0.1.0",
492-
target,
493-
fileExists: async (filePath) => existing.has(filePath)
494-
});
495-
assert.equal(status?.exists, true);
496-
assert.deepEqual(status?.failure, {
497-
stage: "replace",
498-
reason: "replace-failed",
499-
message: "Failed to replace managed Patchloom binary (simulated rename failure)."
500-
});
480+
try {
481+
assert.deepEqual(operations, [
482+
"mkdir /managed/install/0.1.0/managed-bin",
483+
"rename /managed/install/0.1.0/managed-bin/patchloom -> /managed/install/0.1.0/managed-bin/patchloom.bak",
484+
"rename /managed/install/0.1.0/.staging/managed-bin/patchloom -> /managed/install/0.1.0/managed-bin/patchloom",
485+
"rename /managed/install/0.1.0/managed-bin/patchloom.bak -> /managed/install/0.1.0/managed-bin/patchloom",
486+
"mkdir /managed/storage",
487+
`write /managed/storage/${PATCHLOOM_MANAGED_INSTALL_FAILURE_FILE} => {\n \"stage\": \"replace\",\n \"reason\": \"replace-failed\",\n \"message\": \"Failed to replace managed Patchloom binary (simulated rename failure).\"\n}`
488+
]);
501489

502-
clearManagedInstallFailure();
490+
const status = await inspectManagedInstallStatus({
491+
installRoot: "/managed/install",
492+
version: "v0.1.0",
493+
target,
494+
fileExists: async (filePath) => existing.has(filePath)
495+
});
496+
assert.equal(status?.exists, true);
497+
assert.deepEqual(status?.failure, {
498+
stage: "replace",
499+
reason: "replace-failed",
500+
message: "Failed to replace managed Patchloom binary (simulated rename failure)."
501+
});
502+
} finally {
503+
clearManagedInstallFailure();
504+
}
503505
});
504506

505507
test("inspectManagedInstallStatus reports discovered managed binaries", async () => {

0 commit comments

Comments
 (0)