test.govlab/quality/core/stylelint/shrinkable-grid-track.stylelint.rule.test.ts
test.govlab/quality/core/stylelint/shrinkable-grid-track.stylelint.rule.test.ts is a file in Codebase Testing. 32 lines of code and 0 definitions.
import { describe, expect, it } from "vitest";
import shrinkableGridTrack from "@govlab/quality/core/stylelint/shrinkable-grid-track.stylelint.rule.ts";
import stylelint from "stylelint";
const RULE = "govlab/shrinkable-grid-track";
const lint = async function lint(code: string): Promise<readonly string[]> {
const result = await stylelint.lint({ code, config: { plugins: [shrinkableGridTrack], rules: { [RULE]: true } } });
return result.results.flatMap((entry) => entry.warnings.map((warning) => warning.rule));
};
describe("govlab/shrinkable-grid-track", () => {
it("reports a bare fraction track", async () => {
expect(await lint(".grid { grid-template-columns: 1fr; }")).toStrictEqual([RULE]);
});
it("reports a bare fraction beside a fixed track", async () => {
expect(await lint(".row { grid-template-columns: auto 1fr; }")).toStrictEqual([RULE]);
});
it("reports a bare fraction repeated by repeat()", async () => {
expect(await lint(".grid { grid-template-columns: repeat(3, 1fr); }")).toStrictEqual([RULE]);
});
it("reports a bare fraction in the implicit column size", async () => {
expect(await lint(".grid { grid-auto-columns: 2fr; }")).toStrictEqual([RULE]);
});
it("allows a fraction that minmax() lets shrink", async () => {
expect(await lint(".row { grid-template-columns: auto minmax(0, 1fr) auto; }")).toStrictEqual([]);
});
it("allows a fraction nested inside minmax() within repeat()", async () => {
const code = ".cards { grid-template-columns: repeat(auto-fill, minmax(min(100%, 15rem), 1fr)); }";
expect(await lint(code)).toStrictEqual([]);
});
it("leaves row tracks alone", async () => {
expect(await lint(".grid { grid-template-rows: 1fr auto; }")).toStrictEqual([]);
});
});