mirror of https://github.com/openclaw/openclaw.git
64 lines
2.1 KiB
TypeScript
64 lines
2.1 KiB
TypeScript
import { beforeEach, describe, expect, it, vi } from "vitest";
|
|
import {
|
|
loadSanitizeSessionHistoryWithCleanMocks,
|
|
makeMockSessionManager,
|
|
makeSimpleUserMessages,
|
|
type SanitizeSessionHistoryHarness,
|
|
sanitizeSnapshotChangedOpenAIReasoning,
|
|
sanitizeWithOpenAIResponses,
|
|
} from "./pi-embedded-runner.sanitize-session-history.test-harness.js";
|
|
|
|
vi.mock("./pi-embedded-helpers.js", async () => ({
|
|
...(await vi.importActual("./pi-embedded-helpers.js")),
|
|
isGoogleModelApi: vi.fn(),
|
|
sanitizeSessionMessagesImages: vi.fn(async (msgs) => msgs),
|
|
}));
|
|
|
|
let sanitizeSessionHistory: SanitizeSessionHistoryHarness["sanitizeSessionHistory"];
|
|
let mockedHelpers: SanitizeSessionHistoryHarness["mockedHelpers"];
|
|
|
|
describe("sanitizeSessionHistory e2e smoke", () => {
|
|
const mockSessionManager = makeMockSessionManager();
|
|
const mockMessages = makeSimpleUserMessages();
|
|
|
|
beforeEach(async () => {
|
|
const harness = await loadSanitizeSessionHistoryWithCleanMocks();
|
|
sanitizeSessionHistory = harness.sanitizeSessionHistory;
|
|
mockedHelpers = harness.mockedHelpers;
|
|
});
|
|
|
|
it("passes simple user-only history through for google model APIs", async () => {
|
|
vi.mocked(mockedHelpers.isGoogleModelApi).mockReturnValue(true);
|
|
|
|
const result = await sanitizeSessionHistory({
|
|
messages: mockMessages,
|
|
modelApi: "google-generative-ai",
|
|
provider: "google-vertex",
|
|
sessionManager: mockSessionManager,
|
|
sessionId: "test-session",
|
|
});
|
|
|
|
expect(result).toEqual(mockMessages);
|
|
});
|
|
|
|
it("passes simple user-only history through for openai-responses", async () => {
|
|
vi.mocked(mockedHelpers.isGoogleModelApi).mockReturnValue(false);
|
|
|
|
const result = await sanitizeWithOpenAIResponses({
|
|
sanitizeSessionHistory,
|
|
messages: mockMessages,
|
|
sessionManager: mockSessionManager,
|
|
});
|
|
|
|
expect(result).toEqual(mockMessages);
|
|
});
|
|
|
|
it("downgrades openai reasoning blocks when the model snapshot changed", async () => {
|
|
const result = await sanitizeSnapshotChangedOpenAIReasoning({
|
|
sanitizeSessionHistory,
|
|
});
|
|
|
|
expect(result).toEqual([]);
|
|
});
|
|
});
|