import { describe, expect, test } from "bun:test" import { Effect, Schema } from "effect" import { SessionHistoryQuery, SessionsCursor } from "../src/groups/session" import { Session } from "@opencode-ai/schema/session" describe("SessionsCursor", () => { test("round trips without Node globals", async () => { const input = { workspace: undefined, search: "protocol", order: "desc" as const, anchor: { id: Session.ID.make("ses_test"), time: 1, direction: "next" as const }, } const cursor = SessionsCursor.make(input) expect(await Effect.runPromise(SessionsCursor.parse(cursor))).toEqual(input) }) }) describe("SessionHistoryQuery", () => { test("decodes numeric paging inputs", async () => { const query = await Effect.runPromise(Schema.decodeUnknownEffect(SessionHistoryQuery)({ after: "3", limit: "10" })) expect(query).toEqual({ after: 3, limit: 10 }) }) })