mirror of
https://github.com/anomalyco/opencode.git
synced 2026-07-17 00:38:28 +00:00
46 lines
1.6 KiB
TypeScript
46 lines
1.6 KiB
TypeScript
import { expect, test } from "bun:test"
|
|
import { Agent } from "@opencode-ai/schema/agent"
|
|
import { Command } from "@opencode-ai/schema/command"
|
|
import { Connection } from "@opencode-ai/schema/connection"
|
|
import { Credential } from "@opencode-ai/schema/credential"
|
|
import { Integration } from "@opencode-ai/schema/integration"
|
|
import { Model } from "@opencode-ai/schema/model"
|
|
import { Provider } from "@opencode-ai/schema/provider"
|
|
import { Reference } from "@opencode-ai/schema/reference"
|
|
import { Skill } from "@opencode-ai/schema/skill"
|
|
|
|
const Plugin = await import("../src/v2/effect/index")
|
|
const PromisePlugin = await import("../src/v2/promise/index")
|
|
const TuiPlugin = await import("../src/v2/tui/index")
|
|
|
|
test.each([
|
|
["effect", Plugin],
|
|
["promise", PromisePlugin],
|
|
])("%s entrypoint exposes its canonical Schema contracts", (name, entrypoint) => {
|
|
expect(entrypoint.Agent).toBe(Agent)
|
|
expect(entrypoint.Command).toBe(Command)
|
|
expect(entrypoint.Connection).toBe(Connection)
|
|
expect(entrypoint.Credential).toBe(Credential)
|
|
expect(entrypoint.Integration).toBe(Integration)
|
|
expect(entrypoint.Model).toBe(Model)
|
|
expect(entrypoint.Provider).toBe(Provider)
|
|
expect(entrypoint.Reference).toBe(Reference)
|
|
expect(entrypoint.Skill).toBe(Skill)
|
|
expect(Object.keys(entrypoint).sort()).toEqual([
|
|
"Agent",
|
|
"Command",
|
|
"Connection",
|
|
"Credential",
|
|
"Integration",
|
|
"Model",
|
|
"Plugin",
|
|
"Provider",
|
|
"Reference",
|
|
"Skill",
|
|
])
|
|
})
|
|
|
|
test("tui entrypoint exposes the V2 plugin definition", () => {
|
|
const plugin = TuiPlugin.Plugin.define({ id: "demo", setup() {} })
|
|
expect(plugin.id).toBe("demo")
|
|
})
|