mirror of
https://gitea.toothfairyai.com/ToothFairyAI/tf_code.git
synced 2026-04-13 04:04:44 +00:00
64 lines
1.5 KiB
TypeScript
64 lines
1.5 KiB
TypeScript
import { describe, expect, test } from "bun:test"
|
|
import { projectSelected, projectTileActive } from "./sidebar-project-helpers"
|
|
|
|
describe("projectSelected", () => {
|
|
test("matches direct worktree", () => {
|
|
expect(projectSelected("/tmp/root", "/tmp/root")).toBe(true)
|
|
})
|
|
|
|
test("matches sandbox worktree", () => {
|
|
expect(projectSelected("/tmp/branch", "/tmp/root", ["/tmp/branch"])).toBe(true)
|
|
expect(projectSelected("/tmp/other", "/tmp/root", ["/tmp/branch"])).toBe(false)
|
|
})
|
|
})
|
|
|
|
describe("projectTileActive", () => {
|
|
test("menu state always wins", () => {
|
|
expect(
|
|
projectTileActive({
|
|
menu: true,
|
|
preview: false,
|
|
open: false,
|
|
overlay: false,
|
|
worktree: "/tmp/root",
|
|
}),
|
|
).toBe(true)
|
|
})
|
|
|
|
test("preview mode uses open state", () => {
|
|
expect(
|
|
projectTileActive({
|
|
menu: false,
|
|
preview: true,
|
|
open: true,
|
|
overlay: true,
|
|
hoverProject: "/tmp/other",
|
|
worktree: "/tmp/root",
|
|
}),
|
|
).toBe(true)
|
|
})
|
|
|
|
test("overlay mode uses hovered project", () => {
|
|
expect(
|
|
projectTileActive({
|
|
menu: false,
|
|
preview: false,
|
|
open: false,
|
|
overlay: true,
|
|
hoverProject: "/tmp/root",
|
|
worktree: "/tmp/root",
|
|
}),
|
|
).toBe(true)
|
|
expect(
|
|
projectTileActive({
|
|
menu: false,
|
|
preview: false,
|
|
open: false,
|
|
overlay: true,
|
|
hoverProject: "/tmp/other",
|
|
worktree: "/tmp/root",
|
|
}),
|
|
).toBe(false)
|
|
})
|
|
})
|