UNPKG

@plangrid/structure

Version:
77 lines (64 loc) 1.6 kB
const structure = require("./"); const assert = require("assert"); const cader = require("cader"); const ssv = require("ssv"); assert.ok(structure instanceof cader); assert.throws(() => structure.save({ "Input": "should be frozen" })); const testAtom = (atom, expected) => { var fusion = structure.fuse(atom); assert.strictEqual(typeof atom, "string"); assert.strictEqual(typeof fusion, "string"); assert.strictEqual(typeof expected, "string"); assert.ok(ssv.all(fusion, expected)); assert.ok(ssv.all(expected, fusion)); assert.strictEqual( ssv.count(ssv.uniq(fusion)), ssv.count(fusion) ); }; const testAlias = (atom1, atom2) => { assert.strictEqual(typeof atom1, "string"); assert.strictEqual(typeof atom2, "string"); assert.strictEqual( structure.fuse(atom1), structure.fuse(atom2) ); }; const testSpread = ported => { Object.keys(ported).forEach(k => { ssv.split(ported[k]).forEach(v => { assert.strictEqual(v, v.toLowerCase(), "Unspread: " + v + " in " + k); }) }); }; testSpread(structure.port()); testAtom( "FontXL", "font-os font-xl" ); testAtom( "TruncateDIY", "overflow-hidden overflow-dots ws-nowrap" ); testAtom( "TruncateBox", ssv.union(structure.fuse("TruncateDIY"), "preset-box") ); testAlias( "Button:additive", "Additive" ); testAtom( "Input:validate", ssv.union(structure.fuse("Input"), "tone-validate") ); testAtom( "Textarea:validate", ssv.union(structure.fuse("Textarea"), "tone-validate") ); structure.help(); console.log(); console.log("JavaScript tests passed =)"); console.log();