mirror of
https://github.com/RooVetGit/Roo-Code.git
synced 2026-09-10 22:41:14 +00:00
test: update read_file.spec.ts tests for new offset/mode/indentation API
Updates tests to match the new API that replaces line_ranges with: - offset: 1-indexed starting line number - mode: 'slice' or 'indentation' reading mode - indentation: configuration for indentation mode Also updates strict mode expectations since partialReadsEnabled (default true) now sets strict to false to allow optional parameters.
This commit is contained in:
parent
58e9f26e1d
commit
26890a5c28
1 changed files with 56 additions and 18 deletions
|
|
@ -65,34 +65,41 @@ describe("createReadFileTool", () => {
|
|||
})
|
||||
|
||||
describe("partialReadsEnabled option", () => {
|
||||
it("should include line_ranges in description when partialReadsEnabled is true", () => {
|
||||
it("should include offset and mode in description when partialReadsEnabled is true", () => {
|
||||
const tool = createReadFileTool({ partialReadsEnabled: true })
|
||||
const description = getFunctionDef(tool).description
|
||||
|
||||
expect(description).toContain("line_ranges")
|
||||
expect(description).toContain("Example with line ranges")
|
||||
expect(description).toContain("offset")
|
||||
expect(description).toContain("mode")
|
||||
expect(description).toContain("slice")
|
||||
expect(description).toContain("indentation")
|
||||
})
|
||||
|
||||
it("should not include line_ranges in description when partialReadsEnabled is false", () => {
|
||||
it("should not include offset and mode in description when partialReadsEnabled is false", () => {
|
||||
const tool = createReadFileTool({ partialReadsEnabled: false })
|
||||
const description = getFunctionDef(tool).description
|
||||
|
||||
expect(description).not.toContain("line_ranges")
|
||||
expect(description).not.toContain("Example with line ranges")
|
||||
expect(description).not.toContain("offset")
|
||||
expect(description).not.toContain("'slice'")
|
||||
expect(description).not.toContain("'indentation'")
|
||||
})
|
||||
|
||||
it("should include line_ranges parameter in schema when partialReadsEnabled is true", () => {
|
||||
it("should include offset, mode, and indentation parameters in schema when partialReadsEnabled is true", () => {
|
||||
const tool = createReadFileTool({ partialReadsEnabled: true })
|
||||
const schema = getFunctionDef(tool).parameters as any
|
||||
|
||||
expect(schema.properties.files.items.properties).toHaveProperty("line_ranges")
|
||||
expect(schema.properties.files.items.properties).toHaveProperty("offset")
|
||||
expect(schema.properties.files.items.properties).toHaveProperty("mode")
|
||||
expect(schema.properties.files.items.properties).toHaveProperty("indentation")
|
||||
})
|
||||
|
||||
it("should not include line_ranges parameter in schema when partialReadsEnabled is false", () => {
|
||||
it("should not include offset, mode, and indentation parameters in schema when partialReadsEnabled is false", () => {
|
||||
const tool = createReadFileTool({ partialReadsEnabled: false })
|
||||
const schema = getFunctionDef(tool).parameters as any
|
||||
|
||||
expect(schema.properties.files.items.properties).not.toHaveProperty("line_ranges")
|
||||
expect(schema.properties.files.items.properties).not.toHaveProperty("offset")
|
||||
expect(schema.properties.files.items.properties).not.toHaveProperty("mode")
|
||||
expect(schema.properties.files.items.properties).not.toHaveProperty("indentation")
|
||||
})
|
||||
})
|
||||
|
||||
|
|
@ -147,7 +154,7 @@ describe("createReadFileTool", () => {
|
|||
const description = getFunctionDef(tool).description
|
||||
|
||||
expect(description).toContain("maximum of 2 files")
|
||||
expect(description).toContain("line_ranges")
|
||||
expect(description).toContain("offset")
|
||||
expect(description).toContain("within 2-file limit")
|
||||
})
|
||||
|
||||
|
|
@ -159,7 +166,7 @@ describe("createReadFileTool", () => {
|
|||
const description = getFunctionDef(tool).description
|
||||
|
||||
expect(description).toContain("only read one file at a time")
|
||||
expect(description).not.toContain("line_ranges")
|
||||
expect(description).not.toContain("offset")
|
||||
expect(description).not.toContain("Example multiple files")
|
||||
})
|
||||
|
||||
|
|
@ -170,8 +177,9 @@ describe("createReadFileTool", () => {
|
|||
})
|
||||
const description = getFunctionDef(tool).description
|
||||
|
||||
// Should have both line_ranges and image support
|
||||
expect(description).toContain("line_ranges")
|
||||
// Should have both offset/mode and image support
|
||||
expect(description).toContain("offset")
|
||||
expect(description).toContain("mode")
|
||||
expect(description).toContain(
|
||||
"Automatically processes and returns image files (PNG, JPG, JPEG, GIF, BMP, SVG, WEBP, ICO, AVIF) for visual analysis",
|
||||
)
|
||||
|
|
@ -184,8 +192,8 @@ describe("createReadFileTool", () => {
|
|||
})
|
||||
const description = getFunctionDef(tool).description
|
||||
|
||||
// Should have image support but no line_ranges
|
||||
expect(description).not.toContain("line_ranges")
|
||||
// Should have image support but no offset/mode
|
||||
expect(description).not.toContain("offset")
|
||||
expect(description).toContain(
|
||||
"Automatically processes and returns image files (PNG, JPG, JPEG, GIF, BMP, SVG, WEBP, ICO, AVIF) for visual analysis",
|
||||
)
|
||||
|
|
@ -200,7 +208,7 @@ describe("createReadFileTool", () => {
|
|||
const description = getFunctionDef(tool).description
|
||||
|
||||
expect(description).toContain("maximum of 3 files")
|
||||
expect(description).toContain("line_ranges")
|
||||
expect(description).toContain("offset")
|
||||
expect(description).toContain(
|
||||
"Automatically processes and returns image files (PNG, JPG, JPEG, GIF, BMP, SVG, WEBP, ICO, AVIF) for visual analysis",
|
||||
)
|
||||
|
|
@ -220,9 +228,16 @@ describe("createReadFileTool", () => {
|
|||
expect(tool.type).toBe("function")
|
||||
})
|
||||
|
||||
it("should have strict mode enabled", () => {
|
||||
it("should have strict mode disabled when partialReadsEnabled is true (default)", () => {
|
||||
// When partialReadsEnabled is true, strict is false to allow optional parameters
|
||||
const tool = createReadFileTool()
|
||||
|
||||
expect(getFunctionDef(tool).strict).toBe(false)
|
||||
})
|
||||
|
||||
it("should have strict mode enabled when partialReadsEnabled is false", () => {
|
||||
const tool = createReadFileTool({ partialReadsEnabled: false })
|
||||
|
||||
expect(getFunctionDef(tool).strict).toBe(true)
|
||||
})
|
||||
|
||||
|
|
@ -240,4 +255,27 @@ describe("createReadFileTool", () => {
|
|||
expect(schema.properties.files.items.required).toContain("path")
|
||||
})
|
||||
})
|
||||
|
||||
describe("maxReadFileLine option", () => {
|
||||
it("should include line limit in description when maxReadFileLine is set", () => {
|
||||
const tool = createReadFileTool({ maxReadFileLine: 2000 })
|
||||
const description = getFunctionDef(tool).description
|
||||
|
||||
expect(description).toContain("up to 2000 lines")
|
||||
})
|
||||
|
||||
it("should include line limit in offset description when partialReadsEnabled is true", () => {
|
||||
const tool = createReadFileTool({ partialReadsEnabled: true, maxReadFileLine: 1000 })
|
||||
const schema = getFunctionDef(tool).parameters as any
|
||||
|
||||
expect(schema.properties.files.items.properties.offset.description).toContain("1000 lines")
|
||||
})
|
||||
|
||||
it("should not include line limit info when maxReadFileLine is not set", () => {
|
||||
const tool = createReadFileTool({ partialReadsEnabled: true })
|
||||
const description = getFunctionDef(tool).description
|
||||
|
||||
expect(description).not.toContain("returns up to")
|
||||
})
|
||||
})
|
||||
})
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue