fix(tmux): prefer real tmux when session env exists

This commit is contained in:
Momentum96
2026-05-08 00:31:54 +09:00
committed by YeonGyu-Kim
parent 5238dd484e
commit efb862ce9f
2 changed files with 30 additions and 2 deletions
+3 -2
View File
@@ -6,6 +6,7 @@
* failing because there is no real tmux server running.
*/
export function isCmuxCompatEnvironment(): boolean {
return Boolean(process.env.CMUX_SOCKET_PATH) ||
process.env.TMUX?.includes("cmuxterm") === true
const tmuxEnvironment = process.env.TMUX
return tmuxEnvironment?.includes("cmuxterm") === true ||
(Boolean(process.env.CMUX_SOCKET_PATH) && !tmuxEnvironment)
}
+27
View File
@@ -63,6 +63,33 @@ afterAll(async () => {
})
describe("runTmuxCommand", () => {
test("#given cmux socket and real tmux session #when run #then uses requested executable instead of cmux compat", async () => {
// given
const originalCmuxSocketPath = process.env.CMUX_SOCKET_PATH
const originalTmux = process.env.TMUX
process.env.CMUX_SOCKET_PATH = "/tmp/cmux.sock"
process.env.TMUX = "/private/tmp/tmux-501/default,123,0"
try {
// when
const result = await runTmuxCommand("sh", ["-c", "printf '%s\\n' real-tmux"])
// then
expect(result).toEqual({
success: true,
output: "real-tmux",
stdout: "real-tmux",
stderr: "",
exitCode: 0,
})
} finally {
if (originalCmuxSocketPath === undefined) delete process.env.CMUX_SOCKET_PATH
else process.env.CMUX_SOCKET_PATH = originalCmuxSocketPath
if (originalTmux === undefined) delete process.env.TMUX
else process.env.TMUX = originalTmux
}
})
test("#given command exits 0 with stdout #when run #then success true, output and stdout equal trimmed value, stderr empty", async () => {
// given
const commandArguments = ["-c", "printf '%s\\n' '%42'"]