42 lines
1.2 KiB
TypeScript
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();
|
|
});
|
|
});
|