cloudaxe-opencode/packages/opencode/test/tool/tool.test.ts

56 lines
1.3 KiB
TypeScript
Raw Normal View History

2025-05-31 18:41:00 +00:00
import { describe, expect, test } from "bun:test"
import { App } from "../../src/app/app"
2025-05-31 21:12:16 +00:00
import { GlobTool } from "../../src/tool/glob"
2025-05-31 18:41:00 +00:00
import { ls } from "../../src/tool/ls"
2025-05-21 14:30:39 +00:00
describe("tool.glob", () => {
test("truncate", async () => {
await App.provide({ directory: process.cwd() }, async () => {
2025-05-31 21:12:16 +00:00
let result = await GlobTool.execute(
2025-05-21 14:30:39 +00:00
{
pattern: "./node_modules/**/*",
},
{
toolCallId: "test",
messages: [],
},
2025-05-31 18:41:00 +00:00
)
expect(result.metadata.truncated).toBe(true)
})
})
2025-05-21 14:30:39 +00:00
test("basic", async () => {
await App.provide({ directory: process.cwd() }, async () => {
2025-05-31 21:12:16 +00:00
let result = await GlobTool.execute(
2025-05-21 14:30:39 +00:00
{
pattern: "*.json",
},
{
toolCallId: "test",
messages: [],
},
2025-05-31 18:41:00 +00:00
)
2025-05-21 14:30:39 +00:00
expect(result.metadata).toMatchObject({
truncated: false,
2025-05-26 18:18:07 +00:00
count: 2,
2025-05-31 18:41:00 +00:00
})
})
})
})
2025-05-26 18:09:17 +00:00
describe("tool.ls", () => {
test("basic", async () => {
const result = await App.provide({ directory: process.cwd() }, async () => {
return await ls.execute(
{
2025-05-26 18:18:07 +00:00
path: "./example",
2025-05-26 18:09:17 +00:00
},
{
toolCallId: "test",
messages: [],
},
2025-05-31 18:41:00 +00:00
)
})
expect(result.output).toMatchSnapshot()
})
})