public-opencode.test.ts 817 B

12345678910111213141516171819202122232425262728
  1. import { describe, expect } from "bun:test"
  2. import { Effect } from "effect"
  3. import { OpenCode, Session } from "@opencode-ai/core/public"
  4. import { testEffect } from "./lib/effect"
  5. const it = testEffect(OpenCode.layer)
  6. describe("public native OpenCode API", () => {
  7. it.effect("exposes only the intentional Session capabilities", () =>
  8. Effect.gen(function* () {
  9. const opencode = yield* OpenCode.Service
  10. expect(Object.keys(opencode.sessions).sort()).toEqual([
  11. "context",
  12. "create",
  13. "events",
  14. "get",
  15. "list",
  16. "message",
  17. "messages",
  18. "prompt",
  19. ])
  20. expect(Session.ID.create()).toStartWith("ses_")
  21. expect(Session.MessageID.create()).toStartWith("msg_")
  22. expect(yield* opencode.sessions.list()).toBeArray()
  23. }),
  24. )
  25. })