38 lines · 1.3 KB · TypeScript
RawDownload
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 first = await Session.create({})         const otherDir = path.join(projectRoot, "..", "__session_list_other")        const second = await Instance.provide({          directory: otherDir,          fn: async () => Session.create({}),        })         const fetch = Server.internalFetch()        const response = await fetch(`http://openscience.internal/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)      },    })  })})