import { describe, expect, test } from "bun:test" import path from "path" import { Instance } from "../../src/project/instance" import { Server } from "../../src/server/server" import { Session } from "../../src/session" import { Log } from "../../src/util/log" const projectRoot = path.join(__dirname, "../..") Log.init({ print: false }) describe("session.list", () => { test("filters by directory", async () => { await Instance.provide({ directory: projectRoot, fn: async () => { const app = Server.App() const first = await Session.create({}) const otherDir = path.join(projectRoot, "..", "__session_list_other") const second = await Instance.provide({ directory: otherDir, fn: async () => Session.create({}), }) const response = await app.request(`/session?directory=${encodeURIComponent(projectRoot)}`) expect(response.status).toBe(200) const body = (await response.json()) as unknown[] const ids = body .map((s) => (typeof s === "object" && s && "id" in s ? (s as { id: string }).id : undefined)) .filter((x): x is string => typeof x === "string") expect(ids).toContain(first.id) expect(ids).not.toContain(second.id) }, }) }) })