| 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 }) | |
| }) | |
| }) | |