Files
cozsweet-frontend-nextjs/src/lib/chat/__tests__/splash_latest_message.test.ts
T

42 lines
1.2 KiB
TypeScript

import { beforeEach, describe, expect, it, vi } from "vitest";
import { Result } from "@/utils";
const getHistoryMock = vi.hoisted(() => vi.fn());
vi.mock("@/data/repositories/chat_repository", () => ({
getChatRepository: () => ({ getHistory: getHistoryMock }),
}));
import { fetchSplashLatestMessagePreview } from "../splash_latest_message";
describe("fetchSplashLatestMessagePreview", () => {
beforeEach(() => {
getHistoryMock.mockReset();
});
it("uses the last message returned by history", async () => {
getHistoryMock.mockResolvedValue(
Result.ok({
messages: [
{ type: "text", content: "Older message" },
{ type: "text", content: "Latest message" },
],
}),
);
const result = await fetchSplashLatestMessagePreview();
expect(getHistoryMock).toHaveBeenCalledWith(1, 0);
expect(Result.isOk(result) && result.data).toBe("Latest message");
});
it("returns null when history is empty", async () => {
getHistoryMock.mockResolvedValue(Result.ok({ messages: [] }));
const result = await fetchSplashLatestMessagePreview();
expect(Result.isOk(result) && result.data).toBeNull();
});
});