fix(tui): gate Zed context on terminal env (#28517)

This commit is contained in:
Kit Langton
2026-05-20 16:52:33 -04:00
committed by GitHub
parent 09603ed52f
commit 43c24d8d0f
4 changed files with 48 additions and 8 deletions

View File

@@ -2,10 +2,25 @@ import { Database } from "bun:sqlite"
import { mkdir, symlink } from "node:fs/promises"
import os from "node:os"
import path from "node:path"
import { expect, spyOn, test } from "bun:test"
import { offsetToPosition, resolveZedDbPath, resolveZedSelection } from "../../../src/cli/cmd/tui/context/editor-zed"
import { afterEach, expect, spyOn, test } from "bun:test"
import {
isZedTerminal,
offsetToPosition,
resolveZedDbPath,
resolveZedSelection,
} from "../../../src/cli/cmd/tui/context/editor-zed"
import { tmpdir } from "../../fixture/fixture"
const originalZedTerm = process.env.ZED_TERM
const originalTermProgram = process.env.TERM_PROGRAM
afterEach(() => {
if (originalZedTerm === undefined) delete process.env.ZED_TERM
else process.env.ZED_TERM = originalZedTerm
if (originalTermProgram === undefined) delete process.env.TERM_PROGRAM
else process.env.TERM_PROGRAM = originalTermProgram
})
type ZedFixtureOptions = {
workspacePaths?: string | null
itemKind?: string
@@ -85,6 +100,19 @@ test("resolveZedDbPath skips candidates that cannot be stated", async () => {
}
})
test("isZedTerminal only returns true for Zed terminal environments", () => {
delete process.env.ZED_TERM
delete process.env.TERM_PROGRAM
expect(isZedTerminal()).toBeFalse()
process.env.ZED_TERM = "true"
expect(isZedTerminal()).toBeTrue()
process.env.ZED_TERM = "false"
process.env.TERM_PROGRAM = "zed"
expect(isZedTerminal()).toBeTrue()
})
test("resolveZedSelection returns active editor selection", async () => {
await using tmp = await tmpdir()
const fixture = await writeZedFixture(tmp.path)