import { describe, expect, it } from "vitest";
import {
buildSlashSettingsDescriptors,
parseSlashSettingsCommand,
} from "../desktop/src/slash-settings";
describe("desktop slash settings", () => {
it("parses reasoning effort commands", () => {
expect(parseSlashSettingsCommand("/effort low")).toEqual({
type: "reasoningEffort",
reasoningEffort: "low",
});
});
it("parses edit mode commands from model and plan aliases", () => {
expect(parseSlashSettingsCommand("/model auto")).toEqual({
type: "editMode",
editMode: "auto",
});
expect(parseSlashSettingsCommand("/plan auto")).toEqual({
type: "editMode",
editMode: "auto",
});
});
it("treats bare /plan as plan mode", () => {
expect(parseSlashSettingsCommand("/plan")).toEqual({
type: "editMode",
editMode: "plan",
});
});
it("ignores unknown or incomplete setting commands", () => {
expect(parseSlashSettingsCommand("/effort turbo")).toBeNull();
expect(parseSlashSettingsCommand("/model")).toBeNull();
expect(parseSlashSettingsCommand("/unknown auto")).toBeNull();
});
it("exposes setting commands to slash suggestions and help", () => {
const commands = buildSlashSettingsDescriptors().map((entry) => entry.cmd);
expect(commands).toContain("/model auto");
expect(commands).toContain("/plan auto");
expect(commands).toContain("/effort low");
});
});