Skip to content

Commit 623baab

Browse files
authored
Merge pull request #29 from NimaSoroush/bug-fix
- Bug fixes
2 parents 2034a2c + 23b65c3 commit 623baab

File tree

5 files changed

+65
-17
lines changed

5 files changed

+65
-17
lines changed

CHANGELOG.md

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,7 @@
1+
## [0.0.16] - 2017-08-04
2+
### Added
3+
- Bug fixes
4+
15
## [0.0.15] - 2017-08-03
26
### Added
37
- Adding evaluate functionality to evaluate expression on browser

package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "differencify",
3-
"version": "0.0.15",
3+
"version": "0.0.16",
44
"description": "Perceptual diffing tool",
55
"main": "dist/index.js",
66
"scripts": {

src/actions.js

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,6 @@ export default {
33
capture: 'capture',
44
test: 'test',
55
wait: 'wait',
6-
evaluate: 'evaluate',
7-
freezeImage: 'freezeImge',
6+
execute: 'execute',
7+
freezeImage: 'freezeImage',
88
};

src/chromyRunner.js

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -88,13 +88,13 @@ const run = async (chromy, options, test) => {
8888
return false;
8989
}
9090
break;
91-
case actions.evaluate:
91+
case actions.execute:
9292
try {
9393
if (check.function(action.value)) {
94-
prefixedLogger.log('waiting for to evaluate function in browser');
94+
prefixedLogger.log('waiting for to execute function in browser');
9595
await chromy.evaluate(action.value);
9696
} else {
97-
prefixedLogger.log('failed to detect evaluate function');
97+
prefixedLogger.log('failed to detect execute function');
9898
return false;
9999
}
100100
} catch (error) {
@@ -105,7 +105,7 @@ const run = async (chromy, options, test) => {
105105
case actions.freezeImage:
106106
try {
107107
prefixedLogger.log(`Freezing image ${action.value} in browser`);
108-
const result = await chromy.evaluate(freezeImage(action.value));
108+
const result = await chromy.evaluate(() => freezeImage(action.value));
109109
if (!result) {
110110
prefixedLogger.log(`Tag with selector ${action.value} is not a valid image`);
111111
return false;

src/chromyRunner.test.js

Lines changed: 54 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -4,18 +4,20 @@ import run from './chromyRunner';
44
import logger from './logger';
55
import { globalConfig, testConfig, configTypes } from './defaultConfig';
66
import actions from './actions';
7+
import freezeImage from './freezeImage';
78

8-
jest.mock('chromy', () => jest.fn(() =>
9+
jest.mock('chromy', () => () =>
910
({
1011
goto: jest.fn(),
1112
close: jest.fn(),
1213
screenshotDocument: jest.fn(() => 'png file'),
1314
screenshotSelector: jest.fn(() => 'png file'),
1415
screenshot: jest.fn(() => 'png file'),
1516
wait: jest.fn(),
16-
evaluate: jest.fn(),
17-
}),
18-
));
17+
evaluate: jest.fn(fn =>
18+
fn(),
19+
),
20+
}));
1921

2022
jest.mock('./compareImage', () => jest.fn(arg =>
2123
new Promise((resolve, reject) => {
@@ -26,6 +28,8 @@ jest.mock('./compareImage', () => jest.fn(arg =>
2628
}),
2729
));
2830

31+
jest.mock('./freezeImage', () => jest.fn(() => true));
32+
2933
let loggerCalls = [];
3034
logger.prefix = () => logger;
3135
logger.log = (...args) => {
@@ -48,6 +52,7 @@ describe('ChromyRunner', () => {
4852
chromy.screenshotSelector.mockClear();
4953
chromy.wait.mockClear();
5054
chromy.evaluate.mockClear();
55+
freezeImage.mockClear();
5156
});
5257
it('run update', async () => {
5358
testConfig.type = configTypes.update;
@@ -248,37 +253,76 @@ describe('ChromyRunner', () => {
248253
});
249254
});
250255
describe('Chromy runner', () => {
251-
it('Evaluate: function', async () => {
256+
it('Execute: function', async () => {
252257
const newConfig = {
253258
name: 'default',
254259
resolution: {
255260
width: 800,
256261
height: 600,
257262
},
258263
steps: [
259-
{ name: 'evaluate', value: () => {} },
264+
{ name: 'execute', value: () => {} },
260265
],
261266
};
262267
const result = await run(chromy, globalConfig, newConfig);
263268
expect(result).toEqual(true);
264269
expect(chromy.evaluate).toHaveBeenCalledTimes(1);
265-
expect(loggerCalls[0]).toEqual('waiting for to evaluate function in browser');
270+
expect(loggerCalls[0]).toEqual('waiting for to execute function in browser');
266271
});
267-
it('Evaluate: non-function', async () => {
272+
it('Execute: non-function', async () => {
268273
const newConfig = {
269274
name: 'default',
270275
resolution: {
271276
width: 800,
272277
height: 600,
273278
},
274279
steps: [
275-
{ name: 'evaluate', value: 123 },
280+
{ name: 'execute', value: 123 },
276281
],
277282
};
278283
const result = await run(chromy, globalConfig, newConfig);
279284
expect(result).toEqual(false);
280285
expect(chromy.evaluate).toHaveBeenCalledTimes(0);
281-
expect(loggerCalls[0]).toEqual('failed to detect evaluate function');
286+
expect(loggerCalls[0]).toEqual('failed to detect execute function');
287+
});
288+
});
289+
describe('Chromy runner', () => {
290+
it('FreezeImage: existing selector', async () => {
291+
freezeImage.mockReturnValueOnce(true);
292+
const newConfig = {
293+
name: 'default',
294+
resolution: {
295+
width: 800,
296+
height: 600,
297+
},
298+
steps: [
299+
{ name: 'freezeImage', value: 'selector' },
300+
],
301+
};
302+
const result = await run(chromy, globalConfig, newConfig);
303+
expect(result).toEqual(true);
304+
expect(chromy.evaluate).toHaveBeenCalledTimes(1);
305+
expect(freezeImage).toHaveBeenCalledWith('selector');
306+
expect(loggerCalls[0]).toEqual('Freezing image selector in browser');
307+
});
308+
it('FreezeImage: non-existing selector', async () => {
309+
freezeImage.mockReturnValueOnce(false);
310+
const newConfig = {
311+
name: 'default',
312+
resolution: {
313+
width: 800,
314+
height: 600,
315+
},
316+
steps: [
317+
{ name: 'freezeImage', value: 'selector' },
318+
],
319+
};
320+
const result = await run(chromy, globalConfig, newConfig);
321+
expect(result).toEqual(false);
322+
expect(chromy.evaluate).toHaveBeenCalledTimes(1);
323+
expect(freezeImage).toHaveBeenCalledWith('selector');
324+
expect(loggerCalls[0]).toEqual('Freezing image selector in browser');
325+
expect(loggerCalls[1]).toEqual('Tag with selector selector is not a valid image');
282326
});
283327
});
284328
});

0 commit comments

Comments
 (0)