fixture.ts 1.3 KB

12345678910111213141516171819202122232425262728293031323334353637
  1. import { Credential } from "@opencode-ai/core/credential"
  2. import { EventV2 } from "@opencode-ai/core/event"
  3. import { FileSystem } from "@opencode-ai/core/filesystem"
  4. import { FSUtil } from "@opencode-ai/core/fs-util"
  5. import { Global } from "@opencode-ai/core/global"
  6. import { Npm } from "@opencode-ai/core/npm"
  7. import { PluginV2 } from "@opencode-ai/core/plugin"
  8. import { RepositoryCache } from "@opencode-ai/core/repository-cache"
  9. import { Ripgrep } from "@opencode-ai/core/ripgrep"
  10. import { SkillDiscovery } from "@opencode-ai/core/skill/discovery"
  11. import { Effect, Layer } from "effect"
  12. import { FetchHttpClient } from "effect/unstable/http"
  13. import { tempLocationLayer } from "../fixture/location"
  14. export const PluginTestLayer = Layer.mergeAll(FileSystem.locationLayer, PluginV2.locationLayer).pipe(
  15. Layer.provideMerge(
  16. Layer.mergeAll(
  17. Credential.defaultLayer,
  18. EventV2.defaultLayer,
  19. FetchHttpClient.layer,
  20. FSUtil.defaultLayer,
  21. Global.defaultLayer,
  22. Layer.succeed(
  23. Npm.Service,
  24. Npm.Service.of({
  25. add: () => Effect.succeed({ directory: "", entrypoint: undefined }),
  26. install: () => Effect.void,
  27. which: () => Effect.succeed(undefined),
  28. }),
  29. ),
  30. RepositoryCache.defaultLayer,
  31. SkillDiscovery.defaultLayer,
  32. Ripgrep.defaultLayer,
  33. tempLocationLayer,
  34. ),
  35. ),
  36. )