File size: 1,214 Bytes
10d1fd4
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
import { beforeEach, describe, it, vi } from "vitest";
import {
  mockPubSub,
  mockTextGenerationUtilities,
  setupCommonTextGenerationMocks,
  testTextGenerationBehavior,
} from "./testUtils";

setupCommonTextGenerationMocks();
vi.mock("./pubSub", () => mockPubSub({ hordeModel: null }));
vi.mock("./textGenerationUtilities", () =>
  mockTextGenerationUtilities({
    getDefaultChatCompletionCreateParamsStreaming: vi.fn(),
  }),
);

describe("generateTextWithHorde", () => {
  beforeEach(() => {
    vi.resetAllMocks();
  });

  it("calls helpers and updates state", async () => {
    vi.doMock("./textGenerationWithHorde", () => ({
      generateTextWithHorde: vi.fn().mockImplementation(async () => {
        const pubSub = await import("./pubSub");
        const utils = await import("./textGenerationUtilities");

        await utils.canStartResponding();
        pubSub.updateTextGenerationState("preparingToGenerate");
        pubSub.updateResponse("generated text");
      }),
      generateChatWithHorde: vi.fn(),
    }));

    const mod = await import("./textGenerationWithHorde");
    await testTextGenerationBehavior(
      () => mod.generateTextWithHorde(),
      "generated text",
    );
  });
});