From 92fa1241ccb145aba3501f5e7bd0d904b9901263 Mon Sep 17 00:00:00 2001 From: Landon Cox Date: Fri, 21 Aug 2026 10:37:49 -0700 Subject: [PATCH] test: fix config writer tests on macOS Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com> --- src/config-writer.test.ts | 16 +++++++++++++--- 1 file changed, 13 insertions(+), 3 deletions(-) diff --git a/src/config-writer.test.ts b/src/config-writer.test.ts index 64b21caad..1bc87dd78 100644 --- a/src/config-writer.test.ts +++ b/src/config-writer.test.ts @@ -144,12 +144,13 @@ describe('writeConfigs', () => { process.env.GITHUB_WORKSPACE = workspaceDir; fs.mkdirSync(workspaceDir, { recursive: true }); fs.chmodSync(workspaceDir, 0o777); + const canonicalWorkspaceDir = fs.realpathSync(workspaceDir); await writeConfigs(buildWriteConfig(tempDir, { containerWorkDir: workspaceDir })); expect(execa.sync).toHaveBeenCalledWith( 'chown', - ['-h', '-P', '-R', '--', '1000:1000', workspaceDir], + ['-h', '-P', '-R', '--', '1000:1000', canonicalWorkspaceDir], expect.objectContaining({ reject: false }) ); }); @@ -162,12 +163,13 @@ describe('writeConfigs', () => { process.env.GITHUB_WORKSPACE = workspaceDir; fs.mkdirSync(containerWorkDir, { recursive: true }); fs.chmodSync(workspaceDir, 0o777); + const canonicalWorkspaceDir = fs.realpathSync(workspaceDir); await writeConfigs(buildWriteConfig(tempDir, { containerWorkDir })); expect(execa.sync).toHaveBeenCalledWith( 'chown', - ['-h', '-P', '-R', '--', '1000:1000', workspaceDir], + ['-h', '-P', '-R', '--', '1000:1000', canonicalWorkspaceDir], expect.objectContaining({ reject: false }) ); }); @@ -179,11 +181,19 @@ describe('writeConfigs', () => { process.env.GITHUB_WORKSPACE = workspaceDir; fs.mkdirSync(workspaceDir, { recursive: true }); fs.chmodSync(workspaceDir, 0o755); + const canonicalWorkspaceDir = fs.realpathSync(workspaceDir); + const actualStatSync = jest.requireActual('fs').statSync; + (fs.statSync as jest.Mock).mockImplementation((targetPath: fs.PathLike) => { + const stat = actualStatSync(targetPath); + return String(targetPath) === canonicalWorkspaceDir + ? Object.assign(stat, { uid: 0, gid: 0 }) + : stat; + }); await expect( writeConfigs(buildWriteConfig(tempDir, { containerWorkDir: workspaceDir })) ).rejects.toThrow( - `Host workspace is not writable by the sandbox identity (1000:1000): ${workspaceDir}` + `Host workspace is not writable by the sandbox identity (1000:1000): ${canonicalWorkspaceDir}` ); });