import { describe, it, expect } from "vitest"; import { extractReplacement } from "../src/liveTurn"; describe("extractReplacement", () => { it("returns plain text untouched", () => { expect(extractReplacement("Hello world.", "x")).toBe("Hello world."); }); it("strips a wrapping fence", () => { expect(extractReplacement("```\nHello world.\n```", "x")).toBe("Hello world."); }); it("strips a language-tagged fence", () => { expect(extractReplacement("```markdown\nHello.\n```\n", "x")).toBe("Hello."); }); it("leaves inner fences alone", () => { const inner = "before\n```js\ncode\n```\nafter"; expect(extractReplacement(inner, "x")).toBe(inner); }); it("keeps the fence when the original selection was itself fence-wrapped", () => { const sel = "```python\nold()\n```"; const out = "```python\nnew()\n```"; expect(extractReplacement(out, sel)).toBe(out); }); it("still strips when the selection was plain but the model added a fence", () => { expect(extractReplacement("```\nplain\n```", "plain old text")).toBe("plain"); }); });