From 925ce6c2767071120f4a033e415dbedf96aaafcf Mon Sep 17 00:00:00 2001 From: Binh Date: Wed, 7 Oct 2026 10:29:20 +0200 Subject: [PATCH] test(reporting): skip read-only write check when running as root CI job containers run as root, which bypasses file permission bits. The mode check still verifies the archived file has no write bits. --- tests/server/report-archive.test.ts | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/tests/server/report-archive.test.ts b/tests/server/report-archive.test.ts index 3c9f01d..6526518 100644 --- a/tests/server/report-archive.test.ts +++ b/tests/server/report-archive.test.ts @@ -43,7 +43,8 @@ describe('Report archive', () => { expect(renderReportFiles(archived.projection)).toEqual(run.files); const file = join(projectDirectory, manifest.runId, REPORT_ARCHIVE_FILES.management); expect((await stat(file)).mode & 0o222).toBe(0); - await expect(writeFile(file, 'changed')).rejects.toThrow(); + // Root (e.g. a CI job container) bypasses file permission bits; the mode check above still applies. + if (process.getuid?.() !== 0) await expect(writeFile(file, 'changed')).rejects.toThrow(); }); it('detects a changed archived file instead of trusting it', async () => {