Julius Marmingerm unused9e877f58 months agoHistory
51 lines · 1.3 KB · TypeScript
RawDownload
import { describe, expect, it } from "vitest"; import { detectComposerTrigger, replaceTextRange } from "./composer-logic"; describe("detectComposerTrigger", () => {  it("detects @path trigger at cursor", () => {    const text = "Please check @src/com";    const trigger = detectComposerTrigger(text, text.length);     expect(trigger).toEqual({      kind: "path",      query: "src/com",      rangeStart: "Please check ".length,      rangeEnd: text.length,    });  });   it("detects slash command token while typing command name", () => {    const text = "/mo";    const trigger = detectComposerTrigger(text, text.length);     expect(trigger).toEqual({      kind: "slash-command",      query: "mo",      rangeStart: 0,      rangeEnd: text.length,    });  });   it("detects slash model query after /model", () => {    const text = "/model spark";    const trigger = detectComposerTrigger(text, text.length);     expect(trigger).toEqual({      kind: "slash-model",      query: "spark",      rangeStart: 0,      rangeEnd: text.length,    });  });}); describe("replaceTextRange", () => {  it("replaces a text range and returns new cursor", () => {    const replaced = replaceTextRange("hello @src", 6, 10, "");    expect(replaced).toEqual({      text: "hello ",      cursor: 6,    });  });});