| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657 |
- // Smoke test: v1 SDK (the plugin contract) can actually reach core endpoints
- // against the current server. v1 generation has been frozen since #5216
- // (2025-12-07) so types may be stale, but runtime calls should still work
- // for endpoints the v1 SDK was generated against.
- import { afterEach, describe, expect, test } from "bun:test"
- import { createOpencodeClient } from "@kirincode-ai/sdk"
- import { Server } from "../../src/server/server"
- import { tmpdir, disposeAllInstances } from "../fixture/fixture"
- import { resetDatabase } from "../fixture/db"
- afterEach(async () => {
- await disposeAllInstances()
- await resetDatabase()
- })
- function client(directory: string) {
- return createOpencodeClient({
- baseUrl: "http://test",
- directory,
- fetch: ((req: Request) => Server.Default().app.fetch(req)) as unknown as typeof fetch,
- })
- }
- describe("v1 SDK runtime smoke", () => {
- test("session.list reaches the server and returns 200", async () => {
- await using tmp = await tmpdir({ git: true, config: { formatter: false, lsp: false } })
- const sdk = client(tmp.path)
- const result = await sdk.session.list()
- expect(result.error).toBeUndefined()
- expect(Array.isArray(result.data)).toBe(true)
- })
- test("path.get reaches the server and returns 200", async () => {
- await using tmp = await tmpdir({ git: true, config: { formatter: false, lsp: false } })
- const sdk = client(tmp.path)
- const result = await sdk.path.get()
- expect(result.error).toBeUndefined()
- expect(result.data).toBeDefined()
- })
- test("config.get reaches the server and returns 200", async () => {
- await using tmp = await tmpdir({ git: true, config: { formatter: false, lsp: false } })
- const sdk = client(tmp.path)
- const result = await sdk.config.get()
- expect(result.error).toBeUndefined()
- expect(result.data).toBeDefined()
- })
- test("session 404: result-tuple path returns the error body", async () => {
- await using tmp = await tmpdir({ git: true, config: { formatter: false, lsp: false } })
- const sdk = client(tmp.path)
- const result = await sdk.session.get({ path: { id: "ses_no_such" } as never })
- expect(result.error).toBeDefined()
- // wire body for 404 is NamedError-shaped
- expect(result.error).toMatchObject({ name: "NotFoundError" })
- })
- })
|