contract-identity.test.ts 1.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940
  1. import { expect, test } from "bun:test"
  2. import { Agent } from "@opencode-ai/schema/agent"
  3. import { Command } from "@opencode-ai/schema/command"
  4. import { Connection } from "@opencode-ai/schema/connection"
  5. import { Credential } from "@opencode-ai/schema/credential"
  6. import { Integration } from "@opencode-ai/schema/integration"
  7. import { Model } from "@opencode-ai/schema/model"
  8. import { Provider } from "@opencode-ai/schema/provider"
  9. import { Reference } from "@opencode-ai/schema/reference"
  10. import { Skill } from "@opencode-ai/schema/skill"
  11. const Plugin = await import("../src/v2/effect/index")
  12. const PromisePlugin = await import("../src/v2/promise/index")
  13. test.each([
  14. ["effect", Plugin],
  15. ["promise", PromisePlugin],
  16. ])("%s entrypoint exposes its canonical Schema contracts", (name, entrypoint) => {
  17. expect(entrypoint.Agent).toBe(Agent)
  18. expect(entrypoint.Command).toBe(Command)
  19. expect(entrypoint.Connection).toBe(Connection)
  20. expect(entrypoint.Credential).toBe(Credential)
  21. expect(entrypoint.Integration).toBe(Integration)
  22. expect(entrypoint.Model).toBe(Model)
  23. expect(entrypoint.Provider).toBe(Provider)
  24. expect(entrypoint.Reference).toBe(Reference)
  25. expect(entrypoint.Skill).toBe(Skill)
  26. expect(Object.keys(entrypoint).sort()).toEqual([
  27. "Agent",
  28. "Command",
  29. "Connection",
  30. "Credential",
  31. "Integration",
  32. "Model",
  33. "Plugin",
  34. "Provider",
  35. "Reference",
  36. "Skill",
  37. ])
  38. })