(req: ChatCompletionRequest, toolCallId: string, expected: string[])
| 7 | } |
| 8 | |
| 9 | export function toolResultContains(req: ChatCompletionRequest, toolCallId: string, expected: string[]) { |
| 10 | const messages = Array.isArray(req?.messages) ? req.messages : [] |
| 11 | const toolMessage = messages.find( |
| 12 | (message: ChatMessage) => message?.role === "tool" && message.tool_call_id === toolCallId, |
| 13 | ) |
| 14 | |
| 15 | const content = toolMessage?.content |
| 16 | if (typeof content !== "string") { |
| 17 | return false |
| 18 | } |
| 19 | |
| 20 | return expected.every((text) => content.includes(text)) |
| 21 | } |
| 22 | |
| 23 | export function toolResultsContain(req: ChatCompletionRequest, expectations: ToolResultExpectation[]) { |
| 24 | return expectations.every(({ toolCallId, expected }) => toolResultContains(req, toolCallId, expected)) |
no outgoing calls
no test coverage detected