44 lines · 1.8 KB · TypeScript
RawDownload
import { describe, expect, it } from "vite-plus/test"; import { orderedListGutterStyle } from "./ChatMarkdown"; describe("orderedListGutterStyle", () => {  it("leaves the default gutter alone for single-digit lists", () => {    expect(orderedListGutterStyle(9, undefined)).toBeUndefined();  });   it("leaves the default gutter alone for two-digit lists", () => {    expect(orderedListGutterStyle(99, undefined)).toBeUndefined();  });   it("leaves the default gutter alone for a two-digit list that starts above 1", () => {    // start=50 + 49 items => last marker is "98", still two digits.    expect(orderedListGutterStyle(49, 50)).toBeUndefined();  });   it("widens the gutter once the last marker reaches three digits", () => {    // item 100 is the bug from #6512: a 100-item list starting at 1.    expect(orderedListGutterStyle(100, undefined)).toEqual({ "--list-gutter": "4ch" });  });   it("accounts for a non-default start attribute", () => {    // start=95 + 9 items => last marker is "103", three digits.    expect(orderedListGutterStyle(9, 95)).toEqual({ "--list-gutter": "4ch" });    expect(orderedListGutterStyle(5, "999995")).toEqual({ "--list-gutter": "7ch" });  });   it("scales further for four-digit markers", () => {    expect(orderedListGutterStyle(1000, undefined)).toEqual({ "--list-gutter": "5ch" });  });   it("uses the widest marker and includes a negative start's minus sign", () => {    expect(orderedListGutterStyle(1001, -1000)).toEqual({ "--list-gutter": "6ch" });    expect(orderedListGutterStyle(3, -15)).toEqual({ "--list-gutter": "4ch" });    expect(orderedListGutterStyle(3, -5)).toBeUndefined();  });   it("treats a missing/zero item count as a single item", () => {    expect(orderedListGutterStyle(0, undefined)).toBeUndefined();    expect(orderedListGutterStyle(0, 100)).toEqual({ "--list-gutter": "4ch" });  });});