@vulcancreative/cross-colour
Version:
Dynamically translates a SASS/SCSS colour file to a JS object
104 lines (94 loc) • 2.01 kB
JavaScript
const CrossColour = require("../src/cross");
const inputSASS =
`
/* vulcan colors */
$yellow: #ffe380
$cyan: #4ec7bc
$magenta: #fe939d
/* tonals */
$white: #ffffff;
$black: #211f22
$light-grey: #f7f8fa
$line-grey: #e2e1e5
$line-darkgrey: #444245
$mid-grey: #dedede
$slate-grey: #6e7077
$dark-grey: #323034
$space-black: #1e112c
/* wireframes */
$grey-ten: #1a1a1a
$grey-twenty: #333333
$grey-thirty: #4d4d4d
$grey-forty: #666666
$grey-fifty: #808080
$grey-60: #999999
$grey-70: #b2b2b2
$grey-80: #cccccc
$grey-90: #e6e6e6
$grey-100: #ffffff
`;
const inputSCSS =
`
// vulcan colors
$yellow: #ffe380;
$cyan: #4ec7bc;
$magenta: #fe939d;
// tonals
$white: #ffffff;
$black: #211f22;
$light-grey: #f7f8fa;
$line-grey: #e2e1e5;
$line-darkgrey: #444245;
$mid-grey: #dedede;
$slate-grey: #6e7077;
$dark-grey: #323034;
$space-black: #1e112c;
// wireframes
$grey-ten: #1a1a1a;
$grey-twenty: #333333;
$grey-thirty: #4d4d4d;
$grey-forty: #666666;
$grey-fifty: #808080;
$grey-60: #999999;
$grey-70: #b2b2b2;
$grey-80: #cccccc;
$grey-90: #e6e6e6;
$grey-100: #ffffff;
`;
const output =
`{
"yellow": "#ffe380",
"cyan": "#4ec7bc",
"magenta": "#fe939d",
"white": "#ffffff",
"black": "#211f22",
"lightGrey": "#f7f8fa",
"lineGrey": "#e2e1e5",
"lineDarkgrey": "#444245",
"midGrey": "#dedede",
"slateGrey": "#6e7077",
"darkGrey": "#323034",
"spaceBlack": "#1e112c",
"greyTen": "#1a1a1a",
"greyTwenty": "#333333",
"greyThirty": "#4d4d4d",
"greyForty": "#666666",
"greyFifty": "#808080",
"grey60": "#999999",
"grey70": "#b2b2b2",
"grey80": "#cccccc",
"grey90": "#e6e6e6",
"grey100": "#ffffff"
}`
test("correctly compiles SASS", () => {
const c = new CrossColour();
const obj = c.cross(inputSASS).build()
const result = JSON.stringify(obj, null, 2);
expect(result).toBe(output);
});
test("correctly compiles SCSS", () => {
const c = new CrossColour();
const obj = c.cross(inputSCSS).build()
const result = JSON.stringify(obj, null, 2);
expect(result).toBe(output);
});