/
Alex_Ural
/
opencode
Обзор
Документация
Войти
/
Alex_Ural
/
opencode
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
Аналитика
Безопасность
dev
packages/desktop/src/main/shell-env.test.ts
50 строк
2 KB
qunqin
fix(desktop): resolve login shell when loading env (#26449)
13 май 2026, 05:40
Не верифицирован
13 май 2026, 05:40
80543fb
Код
Авторство
О чём код?
import { describe, expect, test } from "bun:test" import { isNushell, mergeShellEnv, parseShellEnv, resolveUserShell } from "./shell-env" describe("shell env", () => { test("parseShellEnv supports null-delimited pairs", () => { const env = parseShellEnv(Buffer.from("PATH=/usr/bin:/bin\0FOO=bar=baz\0\0")) expect(env.PATH).toBe("/usr/bin:/bin") expect(env.FOO).toBe("bar=baz") }) test("parseShellEnv ignores invalid entries", () => { const env = parseShellEnv(Buffer.from("INVALID\0=empty\0OK=1\0")) expect(Object.keys(env).length).toBe(1) expect(env.OK).toBe("1") }) test("mergeShellEnv keeps explicit overrides", () => { const env = mergeShellEnv( { PATH: "/shell/path", HOME: "/tmp/home", }, { PATH: "/desktop/path", OPENCODE_CLIENT: "desktop", }, ) expect(env.PATH).toBe("/desktop/path") expect(env.HOME).toBe("/tmp/home") expect(env.OPENCODE_CLIENT).toBe("desktop") }) test("resolveUserShell falls back to the login shell before /bin/sh", () => { expect(resolveUserShell("/custom/env-shell", "/bin/zsh")).toBe("/custom/env-shell") expect(resolveUserShell(undefined, "/bin/zsh")).toBe("/bin/zsh") expect(resolveUserShell(undefined, "unknown")).toBe("/bin/sh") expect(resolveUserShell(undefined, undefined)).toBe("/bin/sh") }) test("isNushell handles path and binary name", () => { expect(isNushell("nu")).toBe(true) expect(isNushell("/opt/homebrew/bin/nu")).toBe(true) expect(isNushell("C:\\Program Files\\nu.exe")).toBe(true) expect(isNushell("/bin/zsh")).toBe(false) }) })