@sinch/mcp
Version:
Sinch MCP server
50 lines • 2.03 kB
JavaScript
;
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
const openai_1 = __importDefault(require("openai"));
const toolsTestCases_1 = require("../toolsTestCases");
const list_tools_1 = require("../list-tools");
const configuration_1 = require("../configuration");
const transformToOpenAIFormat = (tools) => {
return tools.map((t) => ({
type: 'function',
name: t.name,
description: t.description,
parameters: JSON.stringify(t.inputSchema) === JSON.stringify({ type: "object" }) ? null : t.inputSchema,
strict: false,
}));
};
const targetModel = process.env.TARGET_MODEL || 'gpt-4o-mini';
describe(`Tool invocation tests - Open AI - ${targetModel}`, () => {
let tools;
let openai;
beforeAll(async () => {
tools = transformToOpenAIFormat(await (0, list_tools_1.listTools)());
openai = new openai_1.default({
apiKey: process.env.OPENAI_API_KEY,
});
});
it.each(toolsTestCases_1.toolTestCases)('should handle prompt "%s"', async ({ prompt, expectedToolName, expectedArguments }) => {
const response = await openai.responses.create({
model: targetModel,
temperature: configuration_1.TEMPERATURE,
max_output_tokens: configuration_1.MAX_TOKENS,
input: prompt,
tools,
tool_choice: 'auto',
});
const toolCall = response.output.find((obj) => obj.type === "function_call");
if (!expectedToolName) {
expect(toolCall).toBeUndefined();
return;
}
expect(toolCall).toBeDefined();
expect(toolCall.name).toEqual(expectedToolName);
if (expectedArguments) {
expect(toolCall.arguments).toEqual(JSON.stringify(expectedArguments));
}
}, configuration_1.TIMEOUT);
});
//# sourceMappingURL=openai.int.test.js.map