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(); }); });