feat(tui): show project copy in session list (#31421)

This commit is contained in:
James Long 2026-06-09 12:10:37 -04:00 committed by GitHub
commit ffcb45d7c9
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
8 changed files with 59 additions and 37 deletions

View file

@ -34,6 +34,8 @@ function json<T>(response: HttpClientResponse.HttpClientResponse) {
}
describe("project directories and copies endpoints", () => {
type ProjectDirectory = { directory: string; type: "main" | "root" | "git_worktree" }
it.instance(
"lists directories and manages git worktree copies",
() =>
@ -51,7 +53,7 @@ describe("project directories and copies endpoints", () => {
const initial = yield* request(test.directory, `${base}/directories`)
expect(initial.status).toBe(200)
expect(yield* json<string[]>(initial)).toEqual([test.directory])
expect(yield* json<ProjectDirectory[]>(initial)).toEqual([{ directory: test.directory, type: "main" }])
const create = yield* request(test.directory, copies, {
method: "POST",
@ -63,7 +65,10 @@ describe("project directories and copies endpoints", () => {
expect(created.directory).toBe(createdDirectory)
const listed = yield* request(test.directory, `${base}/directories`)
expect(yield* json<string[]>(listed)).toContain(created.directory)
expect(yield* json<ProjectDirectory[]>(listed)).toContainEqual({
directory: created.directory,
type: "git_worktree",
})
yield* Effect.promise(() => Bun.write(path.join(created.directory, "dirty.txt"), "dirty"))
@ -94,7 +99,10 @@ describe("project directories and copies endpoints", () => {
})
expect(refresh.status).toBe(204)
const refreshed = yield* request(test.directory, `${base}/directories`)
expect((yield* json<string[]>(refreshed)).length).toBe(2)
expect(yield* json<ProjectDirectory[]>(refreshed)).toEqual([
{ directory: externalDirectory, type: "git_worktree" },
{ directory: test.directory, type: "main" },
])
}),
{ git: true },
)