20 lines
795 B
TypeScript
20 lines
795 B
TypeScript
/** Check dell'helper di classi CSS: `bun test/unit/utils.test.ts`. */
|
|||
|
|
import assert from "node:assert/strict";
|
||
|
|
import { cn } from "@/lib/utils";
|
||
|
|
|
||
|
|
// --- cn: unisce classi statiche e condizionali --------------------------------
|
||
|
|
assert.equal(cn("a", "b"), "a b");
|
||
|
|
const escluso = false as boolean;
|
||
|
|
assert.equal(cn("a", escluso && "b", null, undefined, "c"), "a c", "scarta i valori falsy");
|
||
|
|
assert.equal(cn("p-2", ["m-1", "text-sm"]), "p-2 m-1 text-sm", "accetta anche gli array");
|
||
|
|
|
||
|
|
// --- cn: tailwind-merge risolve i conflitti tenendo l'ultima classe -----------
|
||
|
|
assert.equal(cn("p-2", "p-4"), "p-4", "l'ultima utility vince su quella in conflitto");
|
||
|
|
assert.equal(
|
||
|
|
cn("text-red-500", "text-lg"),
|
||
|
|
"text-red-500 text-lg",
|
||
|
|
"classi non in conflitto convivono",
|
||
|
|
);
|
||
|
|
|
||
|
|
console.log("utils: ok");
|