prettier-config/test.mjs
2026-05-28 13:45:11 -04:00

83 lines
2.4 KiB
JavaScript

/**
* Tests for @acamarata/prettier-config.
*
* Verifies that the config object exports the expected keys and that
* per-file-type overrides are structured correctly.
*/
import { strict as assert } from "node:assert";
import { describe, it } from "node:test";
import config from "./index.js";
describe("@acamarata/prettier-config — base config", () => {
it("exports an object", () => {
assert.strictEqual(typeof config, "object");
assert.notStrictEqual(config, null);
});
it("has printWidth", () => {
assert.strictEqual(typeof config.printWidth, "number");
assert.strictEqual(config.printWidth, 100);
});
it("has tabWidth", () => {
assert.strictEqual(typeof config.tabWidth, "number");
assert.strictEqual(config.tabWidth, 2);
});
it("has singleQuote", () => {
assert.strictEqual(typeof config.singleQuote, "boolean");
assert.strictEqual(config.singleQuote, false);
});
it("has trailingComma", () => {
assert.strictEqual(typeof config.trailingComma, "string");
assert.strictEqual(config.trailingComma, "all");
});
it("has semi", () => {
assert.strictEqual(typeof config.semi, "boolean");
assert.strictEqual(config.semi, true);
});
it("has endOfLine lf", () => {
assert.strictEqual(config.endOfLine, "lf");
});
});
describe("@acamarata/prettier-config — overrides", () => {
it("exports an overrides array", () => {
assert.ok(Array.isArray(config.overrides));
assert.ok(config.overrides.length >= 3);
});
it("has markdown override with proseWrap always", () => {
const md = config.overrides.find((o) =>
(Array.isArray(o.files) ? o.files : [o.files]).some((f) =>
f.includes("*.md"),
),
);
assert.ok(md, "markdown override not found");
assert.strictEqual(md.options.proseWrap, "always");
});
it("has JSON override with no trailing comma", () => {
const json = config.overrides.find((o) =>
(Array.isArray(o.files) ? o.files : [o.files]).some((f) =>
f.includes("*.json"),
),
);
assert.ok(json, "JSON override not found");
assert.strictEqual(json.options.trailingComma, "none");
});
it("has YAML override with no trailing comma", () => {
const yaml = config.overrides.find((o) =>
(Array.isArray(o.files) ? o.files : [o.files]).some((f) =>
f.includes("*.yaml"),
),
);
assert.ok(yaml, "YAML override not found");
assert.strictEqual(yaml.options.trailingComma, "none");
});
});