skill.test.ts 1.1 KB

1234567891011121314151617181920212223242526272829303132
  1. import { describe, expect } from "bun:test"
  2. import { Effect, Layer } from "effect"
  3. import { AgentV2 } from "@opencode-ai/core/agent"
  4. import { FSUtil } from "@opencode-ai/core/fs-util"
  5. import { SkillPlugin } from "@opencode-ai/core/plugin/skill"
  6. import { SkillV2 } from "@opencode-ai/core/skill"
  7. import { SkillDiscovery } from "@opencode-ai/core/skill/discovery"
  8. import { testEffect } from "../lib/effect"
  9. const it = testEffect(
  10. SkillV2.layer.pipe(
  11. Layer.provide(FSUtil.defaultLayer),
  12. Layer.provide(SkillDiscovery.defaultLayer),
  13. Layer.provideMerge(AgentV2.locationLayer),
  14. ),
  15. )
  16. describe("SkillPlugin.Plugin", () => {
  17. it.effect("registers the built-in customize-opencode skill", () =>
  18. Effect.gen(function* () {
  19. const skill = yield* SkillV2.Service
  20. yield* SkillPlugin.Plugin.effect.pipe(Effect.provideService(SkillV2.Service, skill))
  21. expect(yield* skill.list()).toContainEqual(
  22. expect.objectContaining({
  23. name: "customize-opencode",
  24. description: expect.stringContaining("opencode's own configuration"),
  25. }),
  26. )
  27. }),
  28. )
  29. })