diff --git a/packages/core/src/utils/shell-utils.test.ts b/packages/core/src/utils/shell-utils.test.ts index e87c90b..bf1d4bd 100644 --- a/packages/core/src/utils/shell-utils.test.ts +++ b/packages/core/src/utils/shell-utils.test.ts @@ -339,7 +339,7 @@ describe('escapeShellArg', () => { it('should handle empty strings', () => { const result = escapeShellArg('', 'cmd'); - expect(result).toBe(''); + expect(result).toBe('""'); }); }); diff --git a/packages/core/src/utils/shell-utils.ts b/packages/core/src/utils/shell-utils.ts index e0e62ec..2789dd5 100644 --- a/packages/core/src/utils/shell-utils.ts +++ b/packages/core/src/utils/shell-utils.ts @@ -90,7 +90,16 @@ export const isWindows = () => os.platform() === 'win32'; */ export function escapeShellArg(arg: string, shell: ShellType): string { if (!arg) { - return ''; + // For empty strings, return quoted empty string to preserve the argument + switch (shell) { + case 'powershell': + return "''"; + case 'cmd': + return '""'; + case 'bash': + default: + return "''"; + } } switch (shell) {