

























@@ -22,7 +22,7 @@ import {
2222isTuiBusyActivityStatus,
2323resolveLocalAuthCliInvocation,
2424resolveLocalAuthSpawnCwd,
25-resolveLocalAuthSpawnOptions,
25+resolveLocalAuthSpawnInvocation,
2626resolveTuiCtrlCAction,
2727resolveTuiFooterHostLabel,
2828resolveTuiShutdownHardExitMs,
@@ -643,38 +643,50 @@ describe("resolveLocalAuthCliInvocation", () => {
643643});
644644});
645645646-describe("resolveLocalAuthSpawnOptions", () => {
647-it("enables shell mode for Windows cmd shims", () => {
646+describe("resolveLocalAuthSpawnInvocation", () => {
647+it("wraps Windows cmd shims through cmd.exe", () => {
648648expect(
649-resolveLocalAuthSpawnOptions({
649+resolveLocalAuthSpawnInvocation({
650650command: "C:\\Users\\me\\AppData\\Roaming\\npm\\codex.cmd",
651+args: ["login"],
651652platform: "win32",
652653}),
653-).toEqual({ shell: true });
654+).toEqual({
655+command: "C:\\Windows\\System32\\cmd.exe",
656+args: ["/d", "/s", "/c", "C:\\Users\\me\\AppData\\Roaming\\npm\\codex.cmd login"],
657+options: { windowsHide: true, windowsVerbatimArguments: true },
658+});
654659});
655660656-it("enables shell mode for Windows bat shims", () => {
661+it("wraps spaced Windows bat shim paths with outer command-line quoting", () => {
657662expect(
658-resolveLocalAuthSpawnOptions({
659-command: "C:\\tools\\codex.bat",
663+resolveLocalAuthSpawnInvocation({
664+command: "C:\\Program Files\\Codex\\codex.bat",
665+args: ["login"],
660666platform: "win32",
661667}),
662-).toEqual({ shell: true });
668+).toEqual({
669+command: "C:\\Windows\\System32\\cmd.exe",
670+args: ["/d", "/s", "/c", '""C:\\Program Files\\Codex\\codex.bat" login"'],
671+options: { windowsHide: true, windowsVerbatimArguments: true },
672+});
663673});
664674665675it("keeps direct execution for non-wrapper commands", () => {
666676expect(
667-resolveLocalAuthSpawnOptions({
677+resolveLocalAuthSpawnInvocation({
668678command: "/usr/local/bin/codex",
679+args: ["login"],
669680platform: "linux",
670681}),
671-).toStrictEqual({});
682+).toStrictEqual({ command: "/usr/local/bin/codex", args: ["login"], options: {} });
672683expect(
673-resolveLocalAuthSpawnOptions({
684+resolveLocalAuthSpawnInvocation({
674685command: "C:\\tools\\codex.exe",
686+args: ["login"],
675687platform: "win32",
676688}),
677-).toStrictEqual({});
689+).toStrictEqual({ command: "C:\\tools\\codex.exe", args: ["login"], options: {} });
678690});
679691});
680692此内容由惯性聚合(RSS阅读器)自动聚合整理,仅供阅读参考。 原文来自 — 版权归原作者所有。