Spaces:
Running
Running
| import { beforeEach, describe, it, vi } from "vitest"; | |
| import { | |
| mockPubSub, | |
| mockTextGenerationUtilities, | |
| setupCommonTextGenerationMocks, | |
| testTextGenerationBehavior, | |
| } from "./testUtils"; | |
| setupCommonTextGenerationMocks(); | |
| vi.mock("@shared/openaiModels", () => ({ | |
| listOpenAiCompatibleModels: vi | |
| .fn() | |
| .mockResolvedValue([{ id: "gpt-3.5-turbo" }, { id: "gpt-4" }]), | |
| selectRandomModel: vi.fn().mockReturnValue("gpt-3.5-turbo"), | |
| })); | |
| vi.mock("./pubSub", () => | |
| mockPubSub({ | |
| reasoningStartMarker: "", | |
| reasoningEndMarker: "", | |
| }), | |
| ); | |
| vi.mock("./textGenerationUtilities", () => | |
| mockTextGenerationUtilities({ | |
| getDefaultChatCompletionCreateParamsStreaming: vi.fn(() => ({ | |
| stream: true, | |
| max_tokens: 1000, | |
| temperature: 0.7, | |
| top_p: 1.0, | |
| min_p: 0.0, | |
| frequency_penalty: 0.0, | |
| presence_penalty: 0.0, | |
| })), | |
| }), | |
| ); | |
| describe("generateTextWithOpenAi", () => { | |
| beforeEach(() => { | |
| vi.resetAllMocks(); | |
| }); | |
| it("calls helpers and updates state", async () => { | |
| vi.doMock("./textGenerationWithOpenAi", () => ({ | |
| generateTextWithOpenAi: vi.fn().mockImplementation(async () => { | |
| const pubSub = await import("./pubSub"); | |
| const utils = await import("./textGenerationUtilities"); | |
| await utils.canStartResponding(); | |
| pubSub.updateTextGenerationState("preparingToGenerate"); | |
| const settings = pubSub.getSettings?.() || {}; | |
| const expectedResponse = `${settings.reasoningStartMarker ?? ""}reasoning${settings.reasoningEndMarker ?? ""}\n\ngenerated text`; | |
| pubSub.updateResponse(expectedResponse); | |
| }), | |
| })); | |
| const mod = await import("./textGenerationWithOpenAi"); | |
| const pubSub = await import("./pubSub"); | |
| const expectedResponse = `${pubSub.getSettings?.()?.reasoningStartMarker ?? ""}reasoning${pubSub.getSettings?.()?.reasoningEndMarker ?? ""}\n\ngenerated text`; | |
| await testTextGenerationBehavior( | |
| () => mod.generateTextWithOpenAi(), | |
| expectedResponse, | |
| ); | |
| }); | |
| }); | |