From b843970ec2f229743b03b5c4e362012048a23e2b Mon Sep 17 00:00:00 2001 From: Dmitriy Petrov Date: Wed, 19 Aug 2026 18:20:25 +0300 Subject: [PATCH] Make journal write failure test deterministic --- test/server/activity-journal-service.test.js | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/test/server/activity-journal-service.test.js b/test/server/activity-journal-service.test.js index 5bc696e..0551eef 100644 --- a/test/server/activity-journal-service.test.js +++ b/test/server/activity-journal-service.test.js @@ -107,10 +107,13 @@ test('corrupt journal is isolated and recovery becomes a safe event', (t) => { test('journal exposes a latched write failure until a later append succeeds', (t) => { const filePath = fixture(t); - const directory = path.dirname(filePath); const service = createActivityJournalService({ filePath }); service.append(event('before-error')); - fs.chmodSync(directory, 0o555); + const renameSync = fs.renameSync; + fs.renameSync = (source, target) => { + if (target === filePath) throw new Error('simulated journal write failure'); + return renameSync(source, target); + }; try { assert.throws(() => service.append(event('lost'))); const failed = service.page(); @@ -119,7 +122,7 @@ test('journal exposes a latched write failure until a later append succeeds', (t assert.equal(failed.events.length, 1); assert.equal(failed.events[0].dedupeKey, null); } finally { - fs.chmodSync(directory, 0o755); + fs.renameSync = renameSync; } service.append(event('recovered')); assert.equal(service.page().storage.status, 'ready');