From ea75da05530fb78fcffc2852cb1308919f16f6b4 Mon Sep 17 00:00:00 2001 From: James Cryer Date: Tue, 8 May 2018 15:42:37 +0100 Subject: [PATCH] Fixed bug with error pixel colour override (#140) * Fixes #138 * 2.10.2 * Bump patch and dependency update --- nodejs-tests/pixelErrorColorTest.png | Bin 0 -> 9429 bytes nodejs-tests/resemble.test.js | 33 ++++- package-lock.json | 184 +++++++++++++++++---------- package.json | 8 +- resemble.js | 2 +- 5 files changed, 156 insertions(+), 71 deletions(-) create mode 100644 nodejs-tests/pixelErrorColorTest.png diff --git a/nodejs-tests/pixelErrorColorTest.png b/nodejs-tests/pixelErrorColorTest.png new file mode 100644 index 0000000000000000000000000000000000000000..fb055ac14870a68f678f4a883364906edb4642a7 GIT binary patch literal 9429 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 { }); }); - test("test partial diff with bounding box", () => { + test("partial diff with bounding box", () => { const people = fs.readFileSync("./demoassets/ghost1.png"); const people2 = fs.readFileSync("./demoassets/ghost2.png"); @@ -143,4 +143,35 @@ describe("resemble", () => { }); }); }); + + test("error pixel color", () => { + const people = fs.readFileSync("./demoassets/ghost1.png"); + const people2 = fs.readFileSync("./demoassets/ghost2.png"); + + return new Promise(resolve => { + resemble.outputSettings({ + errorColor: { + red: 0, + green: 255, + blue: 0 + } + }); + + resemble(people) + .compareTo(people2) + .onComplete(data => { + const buffer = data.getBuffer(); + + expect(buffer).toBeInstanceOf(Buffer); + expect(buffer.length).toBe(9429); + + const comparison = fs.readFileSync( + "./nodejs-tests/pixelErrorColorTest.png" + ); + + expect(buffer.equals(comparison)).toBe(true); + resolve(); + }); + }); + }); }); diff --git a/package-lock.json b/package-lock.json index 079660d..644b6da 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,6 +1,6 @@ { "name": "resemblejs", - "version": "2.10.1", + "version": "2.10.2", "lockfileVersion": 1, "dependencies": { "@babel/code-frame": { @@ -959,6 +959,38 @@ } } }, + "data-urls": { + "version": "1.0.0", + "resolved": + "https://registry.npmjs.org/data-urls/-/data-urls-1.0.0.tgz", + "integrity": + "sha512-ai40PPQR0Fn1lD2PPie79CibnlMN2AYiDhwFX/rZHVsxbs5kNJSjegqXIprhouGXlRdEnfybva7kqRGnB6mypA==", + "dev": true, + "dependencies": { + "punycode": { + "version": "2.1.0", + "resolved": + "https://registry.npmjs.org/punycode/-/punycode-2.1.0.tgz", + "integrity": "sha1-X4Y+3Im5bbCQdLrXlHvwkFbKTn0=", + "dev": true + }, + "tr46": { + "version": "1.0.1", + "resolved": + "https://registry.npmjs.org/tr46/-/tr46-1.0.1.tgz", + "integrity": "sha1-qLE/1r/SSJUZZ0zN5VujaTtwbQk=", + "dev": true + }, + "whatwg-url": { + "version": "6.4.1", + "resolved": + "https://registry.npmjs.org/whatwg-url/-/whatwg-url-6.4.1.tgz", + "integrity": + "sha512-FwygsxsXx27x6XXuExA/ox3Ktwcbf+OAvrKmLulotDAiO1Q6ixchPFaHYsis2zZBZSJTR0+dR+JVtf7MlbqZjw==", + "dev": true + } + } + }, "date-fns": { "version": "1.29.0", "resolved": @@ -1251,19 +1283,11 @@ "sha512-sfmTqJfPSizWu4aymbPr4Iidp5yKm8yDkHp+Ir3YiTHiiDfxh69mOUsmiqW6RZ9zRXFaF64GtYmN7e+8GHBv6Q==", "dev": true }, - "eslint-module-utils": { - "version": "2.1.1", - "resolved": - "https://registry.npmjs.org/eslint-module-utils/-/eslint-module-utils-2.1.1.tgz", - "integrity": - "sha512-jDI/X5l/6D1rRD/3T43q8Qgbls2nq5km5KSqiwlyUbGo5+04fXhMKdCPhjwbqAa6HXWaMxj8Q4hQDIh7IadJQw==", - "dev": true - }, "eslint-plugin-import": { - "version": "2.9.0", + "version": "2.11.0", "resolved": - "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.9.0.tgz", - "integrity": "sha1-JgAu+/ylmJtyiKwEdQi9JPIXsWk=", + "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.11.0.tgz", + "integrity": "sha1-Fa7qN6Z0mdhI6OmBgG1GJ7VQOBY=", "dev": true, "dependencies": { "doctrine": { @@ -1273,6 +1297,13 @@ "integrity": "sha1-N53Ocw9hZvds76TmcHoVmwLFpvo=", "dev": true }, + "eslint-module-utils": { + "version": "2.2.0", + "resolved": + "https://registry.npmjs.org/eslint-module-utils/-/eslint-module-utils-2.2.0.tgz", + "integrity": "sha1-snA2LNiLGkitMIl2zn+lTphBF0Y=", + "dev": true + }, "load-json-file": { "version": "2.0.0", "resolved": @@ -1301,6 +1332,14 @@ "integrity": "sha1-a3KoBImE4MQeeVEP1en6mbO1Sb4=", "dev": true }, + "resolve": { + "version": "1.7.1", + "resolved": + "https://registry.npmjs.org/resolve/-/resolve-1.7.1.tgz", + "integrity": + "sha512-c7rwLofp8g1U+h1KNyHL/jicrKg1Ek4q+Lr33AL65uZTinUZHe30D5HlyN5V9NW0JX1D5dXQ4jqW5l7Sy/kGfw==", + "dev": true + }, "strip-bom": { "version": "3.0.0", "resolved": @@ -2817,11 +2856,11 @@ "dev": true }, "lint-staged": { - "version": "7.0.0", + "version": "7.1.0", "resolved": - "https://registry.npmjs.org/lint-staged/-/lint-staged-7.0.0.tgz", + "https://registry.npmjs.org/lint-staged/-/lint-staged-7.1.0.tgz", "integrity": - "sha512-6Z89we28Qy1Ez7ZxO8yYfPKqzdxkSjnURq1d3RS2gKkZrA135xN+ptF3EWHrcHyBMmgA20vA7dGCQGj+OMS22g==", + "sha512-0l+PRD21v2zBRcfEIxjFMo2DiQ94wykRXH/aEw3aTMYUmnpTRPS1rc3DryPWf+qtK1Pjd51pLigHGopxgDMK5A==", "dev": true, "dependencies": { "acorn": { @@ -2884,11 +2923,11 @@ "dev": true }, "chalk": { - "version": "2.3.2", + "version": "2.4.1", "resolved": - "https://registry.npmjs.org/chalk/-/chalk-2.3.2.tgz", + "https://registry.npmjs.org/chalk/-/chalk-2.4.1.tgz", "integrity": - "sha512-ZM4j2/ld/YZDc3Ma8PgN7gyAk+kHMMMyzLNryCPGhWrsfAuDVeuid5bpRFTDgMH9JBK2lA4dyyAkkZYF/WcqDQ==", + "sha512-ObN6h1v2fTJSmUXoS3nMQ92LbDK9be4TV+6G+omQlGJFdcUX5heKi1LZ1YnRMIgwTLEj3E24bT6tYni50rlCfQ==", "dev": true }, "cryptiles": { @@ -3162,19 +3201,19 @@ "dev": true }, "jsdom": { - "version": "11.6.2", + "version": "11.10.0", "resolved": - "https://registry.npmjs.org/jsdom/-/jsdom-11.6.2.tgz", + "https://registry.npmjs.org/jsdom/-/jsdom-11.10.0.tgz", "integrity": - "sha512-pAeZhpbSlUp5yQcS6cBQJwkbzmv4tWFaYxHbFVSxzXefqjvtRA851Z5N2P+TguVG9YeUDcgb8pdeVQRJh0XR3Q==", + "sha512-x5No5FpJgBg3j5aBwA8ka6eGuS5IxbC8FOkmyccKvObtFT0bDMict/LOxINZsZGZSfGdNomLZ/qRV9Bpq/GIBA==", "dev": true }, "lodash": { - "version": "4.17.5", + "version": "4.17.10", "resolved": - "https://registry.npmjs.org/lodash/-/lodash-4.17.5.tgz", + "https://registry.npmjs.org/lodash/-/lodash-4.17.10.tgz", "integrity": - "sha512-svL3uiZf1RwhH+cWrfZn3A4+U58wbP0tGVTLQPbjplZxZ8ROD9VLuNgsRniTlLe7OlSqR79RUehXgpBW/s0IQw==", + "sha512-UejweD1pDoXu+AD825lWwp4ZGtSwgnpZxb3JDViD7StjQz+Nb/6l093lx4OQ0foGWNRoc19mWy7BzL+UAK2iVg==", "dev": true }, "micromatch": { @@ -3200,21 +3239,13 @@ "dev": true }, "braces": { - "version": "2.3.1", + "version": "2.3.2", "resolved": - "https://registry.npmjs.org/braces/-/braces-2.3.1.tgz", + "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz", "integrity": - "sha512-SO5lYHA3vO6gz66erVvedSCkp7AKWdv6VcQ2N4ysXfPxdAlxAMMAdwegGGcv1Bqwm7naF1hNdk5d6AAIEHV2nQ==", + "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==", "dev": true, "dependencies": { - "define-property": { - "version": "1.0.0", - "resolved": - "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", - "integrity": - "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", - "dev": true - }, "extend-shallow": { "version": "2.0.1", "resolved": @@ -3332,6 +3363,14 @@ "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=", "dev": true }, + "please-upgrade-node": { + "version": "3.0.2", + "resolved": + "https://registry.npmjs.org/please-upgrade-node/-/please-upgrade-node-3.0.2.tgz", + "integrity": + "sha512-bslfSeW+ksUbB/sYZeEdKFyTG4YWU9YKRvqfSRvZKE675khAuBUPqV5RUwJZaGuWmVQLweK45Q+lPHFVnSlSug==", + "dev": true + }, "pretty-format": { "version": "22.4.3", "resolved": @@ -3348,10 +3387,10 @@ "dev": true }, "qs": { - "version": "6.5.1", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.1.tgz", + "version": "6.5.2", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.2.tgz", "integrity": - "sha512-eRzhrN1WSINYCDCbrz796z37LOe3m5tmW7RQf6oBntukAG1nmovJvhnwHHRMAfeoItc1m2Hk02WER2aQ/iqs+A==", + "sha512-N5ZAX4/LxJmF+7wN74pUD6qAh9/wnvdQcjq9TZjevvXzSUo7bfmw91saqMjzGS2xq91/odN2dW/WOl7qQHNDGA==", "dev": true }, "request": { @@ -3379,19 +3418,27 @@ "dev": true }, "source-map-support": { - "version": "0.5.4", + "version": "0.5.5", + "resolved": + "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.5.tgz", + "integrity": + "sha512-mR7/Nd5l1z6g99010shcXJiNEaf3fEtmLhRB/sBcQVJGodcHCULPp2y4Sfa43Kv2zq7T+Izmfp/WHCR6dYkQCA==", + "dev": true + }, + "staged-git-files": { + "version": "1.1.1", "resolved": - "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.4.tgz", + "https://registry.npmjs.org/staged-git-files/-/staged-git-files-1.1.1.tgz", "integrity": - "sha512-PETSPG6BjY1AHs2t64vS2aqAgu6dMIMXJULWFBGbh2Gr8nVLbCFDo6i/RMMvviIQ2h1Z8+5gQhVKSn2je9nmdg==", + "sha512-H89UNKr1rQJvI1c/PIR3kiAMBV23yvR7LItZiV74HWZwzt7f3YHuujJ9nJZlt58WlFox7XQsOahexwk7nTe69A==", "dev": true }, "supports-color": { - "version": "5.3.0", + "version": "5.4.0", "resolved": - "https://registry.npmjs.org/supports-color/-/supports-color-5.3.0.tgz", + "https://registry.npmjs.org/supports-color/-/supports-color-5.4.0.tgz", "integrity": - "sha512-0aP01LLIskjKs3lq52EC0aGBAJhLq7B2Rd8HC/DR/PtNNpcLilNmHC12O+hu0usQpo7wtHNRqtrhBwtDb0+dNg==", + "sha512-zjaXglF5nnWpsq470jSv6P9DwPvgLkuapYmfDm3JWOm0vkNTVF2tI4UrN2r6jH1qM/uc/WtxYY1hYoA2dOKj5w==", "dev": true }, "tr46": { @@ -3402,11 +3449,11 @@ "dev": true }, "whatwg-url": { - "version": "6.4.0", + "version": "6.4.1", "resolved": - "https://registry.npmjs.org/whatwg-url/-/whatwg-url-6.4.0.tgz", + "https://registry.npmjs.org/whatwg-url/-/whatwg-url-6.4.1.tgz", "integrity": - "sha512-Z0CVh/YE217Foyb488eo+iBv+r7eAQ0wSTyApi9n06jhcA3z6Nidg/EGvl0UFkg7kMdKxfBzzr+o9JF+cevgMg==", + "sha512-FwygsxsXx27x6XXuExA/ox3Ktwcbf+OAvrKmLulotDAiO1Q6ixchPFaHYsis2zZBZSJTR0+dR+JVtf7MlbqZjw==", "dev": true }, "xml-name-validator": { @@ -4196,13 +4243,6 @@ } } }, - "please-upgrade-node": { - "version": "3.0.1", - "resolved": - "https://registry.npmjs.org/please-upgrade-node/-/please-upgrade-node-3.0.1.tgz", - "integrity": "sha1-CmgfLBiRXlQzpcos2U4Lggangts=", - "dev": true - }, "pluralize": { "version": "7.0.0", "resolved": @@ -4240,11 +4280,10 @@ "dev": true }, "prettier": { - "version": "1.11.1", + "version": "1.12.1", "resolved": - "https://registry.npmjs.org/prettier/-/prettier-1.11.1.tgz", - "integrity": - "sha512-T/KD65Ot0PB97xTrG8afQ46x3oiVhnfGjGESSI9NWYcG92+OUPZKkwHqGWXH2t9jK1crnQjubECW0FuOth+hxw==", + "https://registry.npmjs.org/prettier/-/prettier-1.12.1.tgz", + "integrity": "sha1-wa0g6APndJ+vkFpAnSNn4Gu+cyU=", "dev": true }, "pretty-format": { @@ -4643,6 +4682,13 @@ "integrity": "sha512-WfG/X9+oATh81XtllIo/I8gOiY9EXRdv1cQdyykeXK17YcUW3EXUAi2To4pcH6nZtJPr7ZOpM5OMyWJZm+8Rsg==" }, + "semver-compare": { + "version": "1.0.0", + "resolved": + "https://registry.npmjs.org/semver-compare/-/semver-compare-1.0.0.tgz", + "integrity": "sha1-De4hahyUGrN+nvsXiPavxf9VN/w=", + "dev": true + }, "set-blocking": { "version": "2.0.0", "resolved": @@ -4912,13 +4958,6 @@ "integrity": "sha1-1PM6tU6OOHeLDKXP07OvsS22hiA=", "dev": true }, - "staged-git-files": { - "version": "1.1.0", - "resolved": - "https://registry.npmjs.org/staged-git-files/-/staged-git-files-1.1.0.tgz", - "integrity": "sha1-GpuxMcGIVgECPHqt3T1UwiFCxSY=", - "dev": true - }, "static-extend": { "version": "0.1.2", "resolved": @@ -5004,6 +5043,13 @@ "integrity": "sha512-4AH6Z5fzNNBcH+6XDMfA/BTt87skxqJlO0lAh3Dker5zThcAxG6mKz+iGu308UKoPPQ8Dcqx/4JhujzltRa+hQ==" }, + "string-argv": { + "version": "0.0.2", + "resolved": + "https://registry.npmjs.org/string-argv/-/string-argv-0.0.2.tgz", + "integrity": "sha1-2sMECGkMIfPDYwo/86BYd73L1zY=", + "dev": true + }, "string-length": { "version": "1.0.1", "resolved": @@ -5513,6 +5559,14 @@ "sha512-jLBwwKUhi8WtBfsMQlL4bUUcT8sMkAtQinscJAe/M4KHCkHuUJAF6vuB0tueNIw4c8ziO6AkRmgY+jL3a0iiPw==", "dev": true }, + "whatwg-mimetype": { + "version": "2.1.0", + "resolved": + "https://registry.npmjs.org/whatwg-mimetype/-/whatwg-mimetype-2.1.0.tgz", + "integrity": + "sha512-FKxhYLytBQiUKjkYteN71fAUA3g6KpNXoho1isLiLSB3N1G4F35Q5vUxWfKFhBwi5IWF27VE6WxhrnnC+m0Mew==", + "dev": true + }, "whatwg-url": { "version": "4.8.0", "resolved": diff --git a/package.json b/package.json index 0b05fb8..2c1b5e2 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "resemblejs", - "version": "2.10.1", + "version": "2.10.2", "description": "Image analysis and comparison with HTML5", "main": "resemble.js", "repository": { @@ -34,13 +34,13 @@ "eslint": "^4.19.1", "eslint-config-es5": "^0.5.0", "eslint-config-prettier": "^2.9.0", - "eslint-plugin-import": "^2.9.0", + "eslint-plugin-import": "^2.11.0", "eslint-plugin-prettier": "^2.6.0", "husky": "^0.14.3", "jest": "^20.0.4", "jest-cli": "^20.0.4", - "lint-staged": "^7.0.0", - "prettier": "^1.11.1" + "lint-staged": "^7.1.0", + "prettier": "^1.12.1" }, "jest": { "testEnvironment": "node" diff --git a/resemble.js b/resemble.js index 80fbf3b..4b3a97a 100644 --- a/resemble.js +++ b/resemble.js @@ -718,7 +718,7 @@ URL: https://github.com/Huddle/Resemble.js if (options.errorColor) { for (key in options.errorColor) { - if (options.hasOwnProperty(key)) { + if (options.errorColor.hasOwnProperty(key)) { errorPixelColor[key] = options.errorColor[key] === void 0 ? errorPixelColor[key]