@@ -4,18 +4,20 @@ import run from './chromyRunner';
44import logger from './logger' ;
55import { globalConfig , testConfig , configTypes } from './defaultConfig' ;
66import 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
2022jest . 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+
2933let loggerCalls = [ ] ;
3034logger . prefix = ( ) => logger ;
3135logger . 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