init
This commit is contained in:
97
jdenticon-js/test/e2e/node/icons.js
Normal file
97
jdenticon-js/test/e2e/node/icons.js
Normal file
@@ -0,0 +1,97 @@
|
||||
"use strict";
|
||||
|
||||
const assert = require("assert");
|
||||
const tap = require("tap");
|
||||
const fs = require("fs");
|
||||
const path = require("path");
|
||||
const { PNG } = require("pngjs");
|
||||
|
||||
const expectedDir = path.join(__dirname, "expected");
|
||||
|
||||
function equal(obj1, obj2) {
|
||||
try {
|
||||
assert.deepStrictEqual(obj1, obj2);
|
||||
return true;
|
||||
} catch (e) {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
function test(jdenticon, icon, style) {
|
||||
jdenticon.configure(style);
|
||||
|
||||
// PNG
|
||||
{
|
||||
const actual = jdenticon.toPng(icon, 50);
|
||||
const expected = fs.readFileSync(path.join(expectedDir, icon +".png"));
|
||||
|
||||
const actualDecoded = PNG.sync.read(actual);
|
||||
const expectedDecoded = PNG.sync.read(expected);
|
||||
|
||||
if (!equal(actualDecoded, expectedDecoded)) {
|
||||
actualDecoded.data = "...";
|
||||
expectedDecoded.data = "...";
|
||||
fs.writeFileSync(path.join(expectedDir, icon +".metadata.json"), JSON.stringify(expectedDecoded, undefined, 2));
|
||||
fs.writeFileSync(path.join(expectedDir, icon +"-actual.metadata.json"), JSON.stringify(actualDecoded, undefined, 2));
|
||||
fs.writeFileSync(path.join(expectedDir, icon +"-actual.png"), actual);
|
||||
tap.ok(false, "Icon '" + icon + "' failed PNG test.");
|
||||
}
|
||||
else {
|
||||
tap.ok(true);
|
||||
}
|
||||
}
|
||||
|
||||
// SVG
|
||||
{
|
||||
const actual = jdenticon.toSvg(icon, 50);
|
||||
const expected = fs.readFileSync(path.join(expectedDir, icon +".svg"));
|
||||
|
||||
if (actual !== expected.toString()) {
|
||||
fs.writeFileSync(path.join(expectedDir, icon + "-actual.svg"), actual);
|
||||
tap.ok(false, "Icon '" + icon + "' failed SVG test.");
|
||||
console.log(expected.toString());
|
||||
console.log(actual);
|
||||
}
|
||||
else {
|
||||
tap.ok(true);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
function testIcons(jdenticon) {
|
||||
test(jdenticon, 73, {
|
||||
backColor: "#fff"
|
||||
});
|
||||
|
||||
test(jdenticon, 76, {
|
||||
hues: [ 134 /*green*/, 0 /*red*/, 60 /*yellow*/ ],
|
||||
lightness: {
|
||||
color: [0.29, 0.53],
|
||||
grayscale: [0.19, 0.40]
|
||||
},
|
||||
saturation: {
|
||||
color: 0.45,
|
||||
grayscale: 0.72
|
||||
},
|
||||
backColor: "#0000002a"
|
||||
});
|
||||
|
||||
test(jdenticon, 39, {
|
||||
hues: [ 134 /*green*/, 0 /*red*/, 60 /*yellow*/ ],
|
||||
lightness: {
|
||||
color: [0.65, 0.86],
|
||||
grayscale: [0.00, 1.00]
|
||||
},
|
||||
saturation: {
|
||||
color: 0.34,
|
||||
grayscale: 0.10
|
||||
},
|
||||
backColor: "#ffffffff"
|
||||
});
|
||||
|
||||
test(jdenticon, 50, {
|
||||
backColor: "#fff"
|
||||
});
|
||||
}
|
||||
|
||||
module.exports = testIcons;
|
||||
Reference in New Issue
Block a user