opencode/packages/plugin/test/contract-identity.test.ts
Shoubhit Dash fbe6e5c0d9 Merge remote-tracking branch 'origin/v2' into search-integration
# Conflicts:
#	packages/client/src/promise/api.ts
#	packages/client/src/promise/generated/types.ts
#	packages/core/src/form.ts
#	packages/core/src/plugin/promise.ts
#	packages/core/test/plugin/promise.test.ts
#	packages/plugin/test/contract-identity.test.ts
#	packages/sdk-next/test/contract-identity.test.ts
#	packages/tui/src/component/dialog-integration.tsx
#	packages/tui/src/routes/session/form.tsx
#	packages/tui/test/fixture/tui-client.ts
2026-07-14 18:40:07 +05:30

49 lines
1.7 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"
import { WebSearch } from "@opencode-ai/schema/websearch"
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(entrypoint.WebSearch).toBe(WebSearch)
expect(Object.keys(entrypoint).sort()).toEqual([
"Agent",
"Command",
"Connection",
"Credential",
"Integration",
"Model",
"Plugin",
"Provider",
"Reference",
"Skill",
"WebSearch",
])
})
test("tui entrypoint exposes the V2 plugin definition", () => {
const plugin = TuiPlugin.Plugin.define({ id: "demo", setup() {} })
expect(plugin.id).toBe("demo")
})