import "jest"; import { ellipsifyEnd, ellipsifyStart } from "../ellipsify"; describe(ellipsifyEnd.name, () => { it("returns string as-is when it is within length", () => { expect(ellipsifyEnd("foo", 3)).toBe("foo"); expect(ellipsifyEnd("fo", 3)).toBe("fo"); expect(ellipsifyEnd("f", 3)).toBe("f"); expect(ellipsifyEnd("", 3)).toBe(""); }); it("uses an ellipsis to truncate the end when over length", () => { expect(ellipsifyEnd("foobar", 3)).toBe("fo…"); expect(ellipsifyEnd("fooba", 3)).toBe("fo…"); expect(ellipsifyEnd("foob", 3)).toBe("fo…"); }); }); describe(ellipsifyStart.name, () => { it("returns string as-is when it is within length", () => { expect(ellipsifyStart("foo", 3)).toBe("foo"); expect(ellipsifyStart("fo", 3)).toBe("fo"); expect(ellipsifyStart("f", 3)).toBe("f"); expect(ellipsifyStart("", 3)).toBe(""); }); it("uses an ellipsis to truncate the start when over length", () => { expect(ellipsifyStart("foobar", 3)).toBe("…ar"); expect(ellipsifyStart("fooba", 3)).toBe("…ba"); expect(ellipsifyStart("foob", 3)).toBe("…ob"); }); it("handles length=2", () => { expect(ellipsifyStart("foo", 2)).toBe("…o"); expect(ellipsifyStart("fo", 2)).toBe("fo"); expect(ellipsifyStart("f", 2)).toBe("f"); }); it("handles length=1", () => { expect(ellipsifyStart("foo", 1)).toBe("…"); expect(ellipsifyStart("fo", 1)).toBe("…"); expect(ellipsifyStart("f", 1)).toBe("f"); }); it("handles length=0", () => { expect(ellipsifyStart("foo", 0)).toBe(""); expect(ellipsifyStart("fo", 0)).toBe(""); expect(ellipsifyStart("f", 0)).toBe(""); }); });