tool.test.ts 1.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758
  1. import { describe, expect, test } from "bun:test"
  2. import { App } from "../../src/app/app"
  3. import { GlobTool } from "../../src/tool/glob"
  4. import { ListTool } from "../../src/tool/ls"
  5. describe("tool.glob", () => {
  6. test("truncate", async () => {
  7. await App.provide({ cwd: process.cwd() }, async () => {
  8. let result = await GlobTool.execute(
  9. {
  10. pattern: "./node_modules/**/*",
  11. path: null,
  12. },
  13. {
  14. sessionID: "test",
  15. messageID: "",
  16. abort: AbortSignal.any([]),
  17. },
  18. )
  19. expect(result.metadata.truncated).toBe(true)
  20. })
  21. })
  22. test("basic", async () => {
  23. await App.provide({ cwd: process.cwd() }, async () => {
  24. let result = await GlobTool.execute(
  25. {
  26. pattern: "*.json",
  27. path: null,
  28. },
  29. {
  30. sessionID: "test",
  31. messageID: "",
  32. abort: AbortSignal.any([]),
  33. },
  34. )
  35. expect(result.metadata).toMatchObject({
  36. truncated: false,
  37. count: 2,
  38. })
  39. })
  40. })
  41. })
  42. describe("tool.ls", () => {
  43. test("basic", async () => {
  44. const result = await App.provide({ cwd: process.cwd() }, async () => {
  45. return await ListTool.execute(
  46. { path: "./example", ignore: [".git"] },
  47. {
  48. sessionID: "test",
  49. messageID: "",
  50. abort: AbortSignal.any([]),
  51. },
  52. )
  53. })
  54. expect(result.output).toMatchSnapshot()
  55. })
  56. })