import { describe, expect, it } from "vitest";
import {
  findSpeechSelectionStartOffset,
  splitSpeechTextIntoChunks,
  stripSpeechMarkdown
} from "./speech";

describe("Agent 语音文本处理", () => {
  it("定位经过空白压缩的选择文本", () => {
    const text = "第一段内容。\n第二段 包含空格。";
    expect(findSpeechSelectionStartOffset(text, "第二段  包含空格")).toBe(text.indexOf("第二段"));
    expect(findSpeechSelectionStartOffset(text, "不存在")).toBeNull();
  });

  it("按句子拆分长文本", () => {
    const chunks = splitSpeechTextIntoChunks(`${"甲".repeat(260)}。${"乙".repeat(260)}。`);
    expect(chunks).toHaveLength(2);
    expect(chunks.join("")).toContain("乙");
  });

  it("移除会干扰朗读的 Markdown 标记", () => {
    expect(stripSpeechMarkdown("## 分析结果\n**水位** [详情](https://example.com)")).toBe("分析结果\n水位 详情");
  });
});
