Masters-four-Tab-OpenAI / frontend /src /utils /chatCommands.test.ts
Pete Dunn
Finalize POTS UI simplification and confirmation safeguards
f5c609c
Raw
History Blame Contribute Delete
1.35 kB
import { describe, expect, it, vi } from "vitest";
import { runLocalChatCommand } from "./chatCommands";
describe("runLocalChatCommand", () => {
it("handles /reset locally and returns true", async () => {
const reset = vi.fn();
const setToast = vi.fn();
const handled = await runLocalChatCommand("/reset", { reset, setToast });
expect(handled).toBe(true);
expect(reset).toHaveBeenCalledTimes(1);
expect(setToast).toHaveBeenCalledWith("Conversation reset");
});
it("ignores non-command input", async () => {
const handled = await runLocalChatCommand("hello there", {
reset: vi.fn(),
setToast: vi.fn(),
});
expect(handled).toBe(false);
});
it("reports unknown slash command without throwing", async () => {
const setToast = vi.fn();
const handled = await runLocalChatCommand("/not-a-command", {
reset: vi.fn(),
setToast,
});
expect(handled).toBe(true);
expect(setToast).toHaveBeenCalled();
});
it("does not show the reset toast when reset is cancelled", async () => {
const reset = vi.fn(async () => false);
const setToast = vi.fn();
const handled = await runLocalChatCommand("/reset", { reset, setToast });
expect(handled).toBe(true);
expect(reset).toHaveBeenCalledTimes(1);
expect(setToast).not.toHaveBeenCalled();
});
});