Skip to content

Commit 44c0fe7

Browse files
Add comprehensive tests for tryApplyToolResponseFilter, rewriteFilteredTextPayload, and rewriteEnvelopeTextPayload
These three internal functions in internal/middleware/jqschema.go had many branches that were previously covered only indirectly through WrapToolHandler integration tests. The new white-box test file directly exercises every branch: rewriteEnvelopeTextPayload (10 cases): - non-map data, map without content key - []map content: empty, non-empty (rewrites first item, immutability) - []interface{} content: empty, first-item-not-a-map, first-item-is-map (rewrites + immutability) - unrecognised content type rewriteFilteredTextPayload (5 cases): - single content item with successful envelope rewrite - multiple content items (trailing items preserved) - envelope rewrite fails, valid JSON filteredText - envelope rewrite fails, invalid JSON filteredText (original data fallback) - IsError/Meta propagation tryApplyToolResponseFilter (13 cases): - nil filterCode (early return) - empty Content slice (falls through to data-level filter) - non-TextContent first item (falls through to data-level filter) - TextContent with non-JSON text (falls through to data-level filter) - TextContent filter error (returns original result/data) - TextContent filter succeeds (rewrites result) - TextContent trailing items preserved after text-level rewrite - data-level filter error (returns original result/data) - ConvertToCallToolResult error (returns original result/data) - data-level success with trailing items appended - data-level success single item (no trailing appended) - IsError propagated for data-level success Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
1 parent 195cbb4 commit 44c0fe7

1 file changed

Lines changed: 433 additions & 0 deletions

File tree

0 commit comments

Comments
 (0)