gradient-palette
Version:
A simple gradient palette generator in RGB scale.
86 lines (74 loc) • 2.13 kB
JavaScript
const GradientPalette = require("./index");
test("Hex to RGB conversion", () => {
expect(GradientPalette.hexToRGB("#f81744")).toEqual({
r: 248,
g: 23,
b: 68
});
});
test("Hex to RGB conversion without a # prefix", () => {
expect(GradientPalette.hexToRGB("876543")).toEqual({
r: 135,
g: 101,
b: 67
});
});
test("Hex to RGB conversion (length=3)", () => {
expect(GradientPalette.hexToRGB("#456")).toEqual({
r: 68,
g: 85,
b: 102
});
});
test("Hex to RGB conversion (length=3) without a # prefix", () => {
expect(GradientPalette.hexToRGB("456")).toEqual({
r: 68,
g: 85,
b: 102
});
});
test("RGB to Hex conversion", () => {
expect(GradientPalette.rgbToHex({ r: 71, g: 141, b: 255 })).toBe("#478dff");
});
test("Palette generation", () => {
expect(GradientPalette.generate("#e7d5ad", "#e63d92", 8)).toEqual([
"#e7d5ad",
"#e7bfa9",
"#e7aaa5",
"#e794a1",
"#e67e9e",
"#e6689a",
"#e65396",
"#e63d92"
]);
});
test("Palette generation (return in RGB format)", () => {
expect(GradientPalette.generate("#e7d5ad", "#e63d92", 8, false)).toEqual([
{ r: 231, g: 213, b: 173 },
{ r: 231, g: 191, b: 169 },
{ r: 231, g: 170, b: 165 },
{ r: 231, g: 148, b: 161 },
{ r: 230, g: 126, b: 158 },
{ r: 230, g: 104, b: 154 },
{ r: 230, g: 83, b: 150 },
{ r: 230, g: 61, b: 146 }
]);
});
test("Palette color increment", () => {
const increment = GradientPalette.calculateIncrement(
{ r: 231, g: 213, b: 173 },
{ r: 230, g: 61, b: 146 },
8
);
expect(increment.r).toBeCloseTo(-0.142857);
expect(increment.g).toBeCloseTo(-21.714286);
expect(increment.b).toBeCloseTo(-3.857143);
});
test("Random RGB", () => {
expect(GradientPalette.getRandomRGB()).toHaveProperty("r");
expect(GradientPalette.getRandomRGB()).toHaveProperty("g");
expect(GradientPalette.getRandomRGB()).toHaveProperty("b");
});
test("Random Hex String", () => {
expect(GradientPalette.getRandomHex()).toMatch(/#\b[0-9a-f]{6}\b/g);
});