tui-runtime.ts 816 B

123456789101112131415161718192021222324252627
  1. import { spyOn } from "bun:test"
  2. import path from "path"
  3. import { TuiConfig } from "../../src/config/tui"
  4. type PluginSpec = string | [string, Record<string, unknown>]
  5. export function mockTuiRuntime(dir: string, plugin: PluginSpec[]) {
  6. process.env.KILO_PLUGIN_META_FILE = path.join(dir, "plugin-meta.json")
  7. const plugin_origins = plugin.map((spec) => ({
  8. spec,
  9. scope: "local" as const,
  10. source: path.join(dir, "tui.json"),
  11. }))
  12. const get = spyOn(TuiConfig, "get").mockResolvedValue({
  13. plugin,
  14. plugin_origins,
  15. })
  16. const wait = spyOn(TuiConfig, "waitForDependencies").mockResolvedValue()
  17. const cwd = spyOn(process, "cwd").mockImplementation(() => dir)
  18. return () => {
  19. cwd.mockRestore()
  20. get.mockRestore()
  21. wait.mockRestore()
  22. delete process.env.KILO_PLUGIN_META_FILE
  23. }
  24. }