materialifier
Version:
Material design palette generator
44 lines (40 loc) • 1.25 kB
text/typescript
import {generateAccentPalette, generateDarkPalette, generateLightPalette, RGBColor} from "../src/index";
const eightDigitsHex = '#32CD3266';
const sixDigitsHex = '#ce1b1b';
const threeDigitsHex = '#ce1';
const hexWithoutPound = 'ce1b1b';
const rgbColor = new RGBColor(0.4, 0.6, 0.2);
function generatorTestBuilder(name: string, generator: CallableFunction) {
describe(name, () => {
it('Length is 10', () => {
expect(generator(sixDigitsHex)).toHaveLength(10);
});
it('Accepts 3 digit hex', () => {
expect(generator(threeDigitsHex)).toBeTruthy();
});
it('Accepts hex without the # symbol', () => {
expect(generator(hexWithoutPound)).toBeTruthy();
});
it('Accepts 8 digit hex', () => {
expect(generator(eightDigitsHex)).toBeTruthy();
});
it('Accepts RGBColor', () => {
expect(generator(rgbColor)).toBeTruthy();
});
});
}
const generatorTests: [string, CallableFunction][] = [
[
'Generate accent palette',
generateAccentPalette
],
[
'Generate light palette',
generateLightPalette
],
[
'Generate dark palette',
generateDarkPalette
]
];
generatorTests.forEach(item => generatorTestBuilder(...item));