39 lines
1.2 KiB
TypeScript
39 lines
1.2 KiB
TypeScript
import { beforeAll, describe, expect, mock, test } from "bun:test"
|
|
|
|
let getWorkspaceTerminalCacheKey: (dir: string) => string
|
|
let getLegacyTerminalStorageKeys: (dir: string, legacySessionID?: string) => string[]
|
|
|
|
beforeAll(async () => {
|
|
mock.module("@solidjs/router", () => ({
|
|
useParams: () => ({}),
|
|
}))
|
|
mock.module("@opencode-ai/ui/context", () => ({
|
|
createSimpleContext: () => ({
|
|
use: () => undefined,
|
|
provider: () => undefined,
|
|
}),
|
|
}))
|
|
const mod = await import("./terminal")
|
|
getWorkspaceTerminalCacheKey = mod.getWorkspaceTerminalCacheKey
|
|
getLegacyTerminalStorageKeys = mod.getLegacyTerminalStorageKeys
|
|
})
|
|
|
|
describe("getWorkspaceTerminalCacheKey", () => {
|
|
test("uses workspace-only directory cache key", () => {
|
|
expect(getWorkspaceTerminalCacheKey("/repo")).toBe("/repo:__workspace__")
|
|
})
|
|
})
|
|
|
|
describe("getLegacyTerminalStorageKeys", () => {
|
|
test("keeps workspace storage path when no legacy session id", () => {
|
|
expect(getLegacyTerminalStorageKeys("/repo")).toEqual(["/repo/terminal.v1"])
|
|
})
|
|
|
|
test("includes legacy session path before workspace path", () => {
|
|
expect(getLegacyTerminalStorageKeys("/repo", "session-123")).toEqual([
|
|
"/repo/terminal/session-123.v1",
|
|
"/repo/terminal.v1",
|
|
])
|
|
})
|
|
})
|