import { describe, test, expect } from 'vitest' import { insertInto, removeBackward, removeForward, replaceWith } from './Text'; describe("Text", () => { test("* should throw when passed wrong parameters", () => { expect(() => insertInto(Infinity, Infinity, Infinity)).toThrowError('Invalid string'); expect(() => insertInto('Hello', Infinity, Infinity)).toThrowError('Invalid offset'); expect(() => insertInto('Hello', 0, Infinity)).toThrowError('Invalid string'); }); test("`insertInto` should insert a string into an offset", () => { expect(insertInto("Hell, World!", 4, "o")).toBe("Hello, World!"); }); test("`replaceWith` should replace a string into a string", () => { expect(replaceWith("Hello, Something!", 7, 16, "World")).toBe("Hello, World!"); }); test("`removeBackward` should remove string backward from start (offset 0)", () => { expect(removeBackward("Hello, World!", 0)).toBe("Hello, World!"); }); test("`removeForward` should remove string forward from start (offset 0)", () => { expect(removeForward("Hello, World!", 0)).toBe("ello, World!"); }); test("`removeBackward` should remove string backward from end", () => { expect(removeBackward("Hello, World!", "Hello, World!".length)).toBe( "Hello, World" ); }); test("`removeForward` should remove string forward from end", () => { expect(removeForward("Hello, World!", "Hello, World!".length)).toBe( "Hello, World!" ); }); test("`removeBackward` should remove string backward from offset 6", () => { expect(removeBackward("Hello, World!", 6)).toBe("Hello World!"); }); test("`removeForward` should remove string forward from offset 6", () => { expect(removeForward("Hello, World!", 6)).toBe("Hello,World!"); }); });