Skip to content

Commit

Permalink
Try image-difference (#28)
Browse files Browse the repository at this point in the history
* Try image-difference

* remove image-diff and fix package name

* Add es2017

* Fix prop name

* Use image-diffrence@2.0.7
  • Loading branch information
bokuweb authored Jul 7, 2017
1 parent 5eb8f0f commit 0e07428
Show file tree
Hide file tree
Showing 5 changed files with 227 additions and 323 deletions.
8 changes: 4 additions & 4 deletions .babelrc
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"presets": ["es2015", "es2016", "stage-2"],
"presets": ["es2015", "es2016", "es2017", "stage-2"],
"plugins": [
"babel-plugin-transform-flow-strip-types",
],
}
"babel-plugin-transform-flow-strip-types"
]
}
3 changes: 2 additions & 1 deletion package.json
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,7 @@
"chalk": "^1.1.3",
"cli-spinner": "^0.2.6",
"glob": "^7.1.1",
"image-diff": "^1.6.3",
"image-difference": "^2.0.7",
"lodash": "^4.17.4",
"make-dir": "^1.0.0",
"md5-file": "^3.1.1",
Expand All @@ -38,6 +38,7 @@
"babel-plugin-transform-flow-strip-types": "^6.22.0",
"babel-preset-es2015": "^6.24.1",
"babel-preset-es2016": "^6.24.1",
"babel-preset-es2017": "^6.24.1",
"babel-preset-stage-2": "^6.24.1",
"copyfiles": "^1.2.0",
"css-loader": "^0.28.2",
Expand Down
25 changes: 12 additions & 13 deletions src/index.js
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
/* @flow */

const imageDiff = require('image-diff');
const imageDifference = require('image-difference').default;
const { Spinner } = require('cli-spinner');
const glob = require('glob'); // $FlowIgnore
const mkdirp = require('make-dir'); // $FlowIgnore
Expand Down Expand Up @@ -54,20 +54,19 @@ const compareAndCreateDiff = ({ actualDir, expectedDir, diffDir, image, threshol
if (actualHash === expectedHash) {
return Promise.resolve({ passed: true, image });
}
return new Promise((resolve, reject) => {
imageDiff.getFullResult({
actualImage: `${actualDir}${image}`,
expectedImage: `${expectedDir}${image}`,
diffImage: `${diffDir}${image}`,
shadow: true,
}, (err, result) => {
if (err) {
reject(err);
}
return imageDifference({
actualFilename: `${actualDir}${image}`,
expectedFilename: `${expectedDir}${image}`,
diffFilename: `${diffDir}${image}`,
// metric: 'RMSE',
})
.then((result) => {
const passed = result.percentage <= threshold;
resolve({ passed, image });
return { passed, image };
})
.catch((e) => {
reject(e);
})
})
})
};

Expand Down
6 changes: 4 additions & 2 deletions test/test.js
Original file line number Diff line number Diff line change
Expand Up @@ -14,14 +14,14 @@ test.beforeEach(async t => {
await new Promise((resolve) => copyfiles([`${RESOURCE}${IMAGE_FILES}`, WORKSPACE], resolve));
})

test('should display error message when passing only 1 argument', async t => {
test.serial('should display error message when passing only 1 argument', async t => {
const stdout = await new Promise((resolve) => {
execFile('./dist/cli.js', ['./sample/actual'], (error, stdout) => resolve(stdout));
})
t.true(stdout.indexOf('please specify actual, expected and diff images directory') !== -1);
});

test('should display error message when passing only 2 argument', async t => {
test.serial('should display error message when passing only 2 argument', async t => {
const stdout = await new Promise((resolve) => {
execFile('./dist/cli.js', ['./sample/actual', './sample/expected'], (error, stdout) => resolve(stdout));
})
Expand All @@ -45,6 +45,7 @@ test.serial('should generate image diff and output fail message', async t => {
fs.readFileSync(`${WORKSPACE}/diff/${SAMPLE_IMAGE}`);
t.pass();
} catch (e) {
console.log(e)
t.fail();
}
});
Expand Down Expand Up @@ -202,3 +203,4 @@ test.serial('should generate success report', async t => {
test.afterEach.always(async t => {
await new Promise((done) => rimraf(`${WORKSPACE}${IMAGE_FILES}`, done));
});

Loading

0 comments on commit 0e07428

Please sign in to comment.