Files
vscode-cowriting-plugin/test/liveTurn.test.ts
T
2026-06-10 10:35:16 -07:00

27 lines
1.1 KiB
TypeScript

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");
});
});