taskforce-aiagent
Version:
TaskForce is a modular, open-source, production-ready TypeScript agent framework for orchestrating AI agents, LLM-powered autonomous agents, task pipelines, dynamic toolchains, RAG workflows and memory/retrieval systems.
81 lines (80 loc) • 2.86 kB
JavaScript
"use strict";
// @ts-nocheck
process.env.OPENAI_API_KEY = "dummy";
describe("callOpenAIFunction", () => {
afterEach(() => {
jest.resetModules();
jest.clearAllMocks();
});
it("calls OpenAI and returns the content", async () => {
jest.doMock("openai", () => {
return {
__esModule: true,
default: jest.fn().mockImplementation(() => ({
chat: {
completions: {
create: jest.fn().mockResolvedValue({
choices: [{ message: { content: "Mocked completion output" } }],
}),
},
},
})),
};
});
const systemAiHelper = require("./systemAi.helper");
const result = await systemAiHelper.callOpenAIFunction({
model: "gpt-4o-mini",
system: "sys prompt",
user: "user prompt",
});
expect(result).toBe("Mocked completion output");
});
it("handles missing content gracefully", async () => {
jest.doMock("openai", () => {
return {
__esModule: true,
default: jest.fn().mockImplementation(() => ({
chat: {
completions: {
create: jest.fn().mockResolvedValue({
choices: [{ message: { content: "" } }],
}),
},
},
})),
};
});
const systemAiHelper = require("./systemAi.helper");
const result = await systemAiHelper.callOpenAIFunction({
model: "gpt-4o-mini",
system: "sys prompt",
user: "user prompt",
});
expect(result).toBe("N/A");
});
it("supports messages param", async () => {
jest.doMock("openai", () => {
return {
__esModule: true,
default: jest.fn().mockImplementation(() => ({
chat: {
completions: {
create: jest.fn().mockResolvedValue({
choices: [{ message: { content: "Mocked completion output" } }],
}),
},
},
})),
};
});
const systemAiHelper = require("./systemAi.helper");
const result = await systemAiHelper.callOpenAIFunction({
model: "gpt-4o-mini",
messages: [
{ role: "user", content: "mesaj" },
{ role: "system", content: "sys" },
],
});
expect(result).toBe("Mocked completion output");
});
});