@@ -8,7 +8,8 @@ const screenshotOnFail = require('../../../lib/plugin/screenshotOnFail')
8
8
const container = require ( '../../../lib/container' )
9
9
const event = require ( '../../../lib/event' )
10
10
const recorder = require ( '../../../lib/recorder' )
11
-
11
+ const { createTest } = require ( '../../../lib/mocha/test' )
12
+ const { deserializeSuite } = require ( '../../../lib/mocha/suite' )
12
13
let screenshotSaved
13
14
14
15
describe ( 'screenshotOnFail' , ( ) => {
@@ -25,23 +26,23 @@ describe('screenshotOnFail', () => {
25
26
26
27
it ( 'should remove the . at the end of test title' , async ( ) => {
27
28
screenshotOnFail ( { } )
28
- event . dispatcher . emit ( event . test . failed , { title : 'test title.' } )
29
+ event . dispatcher . emit ( event . test . failed , createTest ( 'test title.' ) )
29
30
await recorder . promise ( )
30
31
expect ( screenshotSaved . called ) . is . ok
31
32
expect ( 'test_title.failed.png' ) . is . equal ( screenshotSaved . getCall ( 0 ) . args [ 0 ] )
32
33
} )
33
34
34
35
it ( 'should exclude the data driven in failed screenshot file name' , async ( ) => {
35
36
screenshotOnFail ( { } )
36
- event . dispatcher . emit ( event . test . failed , { title : 'Scenario with data driven | {"login":"admin","password":"123456"}' } )
37
+ event . dispatcher . emit ( event . test . failed , createTest ( 'Scenario with data driven | {"login":"admin","password":"123456"}' ) )
37
38
await recorder . promise ( )
38
39
expect ( screenshotSaved . called ) . is . ok
39
40
expect ( 'Scenario_with_data_driven.failed.png' ) . is . equal ( screenshotSaved . getCall ( 0 ) . args [ 0 ] )
40
41
} )
41
42
42
43
it ( 'should create screenshot on fail' , async ( ) => {
43
44
screenshotOnFail ( { } )
44
- event . dispatcher . emit ( event . test . failed , { title : 'test1' } )
45
+ event . dispatcher . emit ( event . test . failed , createTest ( 'test1' ) )
45
46
await recorder . promise ( )
46
47
expect ( screenshotSaved . called ) . is . ok
47
48
expect ( 'test1.failed.png' ) . is . equal ( screenshotSaved . getCall ( 0 ) . args [ 0 ] )
@@ -50,17 +51,34 @@ describe('screenshotOnFail', () => {
50
51
it ( 'should create screenshot with unique name' , async ( ) => {
51
52
screenshotOnFail ( { uniqueScreenshotNames : true } )
52
53
53
- const test = { title : 'test1' , uid : 1 }
54
+ const test = createTest ( 'test1' )
55
+ const suite = deserializeSuite ( { title : 'suite1' } )
56
+ test . addToSuite ( suite )
57
+
54
58
event . dispatcher . emit ( event . test . failed , test )
55
59
await recorder . promise ( )
56
60
expect ( screenshotSaved . called ) . is . ok
61
+ expect ( screenshotSaved . getCall ( 0 ) . args [ 0 ] ) . not . to . include ( '/' )
57
62
expect ( `test1_${ test . uid } .failed.png` ) . is . equal ( screenshotSaved . getCall ( 0 ) . args [ 0 ] )
58
63
} )
59
64
60
65
it ( 'should create screenshot with unique name when uid is null' , async ( ) => {
61
66
screenshotOnFail ( { uniqueScreenshotNames : true } )
62
67
63
- event . dispatcher . emit ( event . test . failed , { title : 'test1' } )
68
+ const test = createTest ( 'test1' )
69
+ event . dispatcher . emit ( event . test . failed , test )
70
+ await recorder . promise ( )
71
+ expect ( screenshotSaved . called ) . is . ok
72
+ const fileName = screenshotSaved . getCall ( 0 ) . args [ 0 ]
73
+ const regexpFileName = / t e s t 1 _ [ 0 - 9 ] { 10 } .f a i l e d .p n g /
74
+ expect ( fileName . match ( regexpFileName ) . length ) . is . equal ( 1 )
75
+ } )
76
+
77
+ it ( 'should create screenshot with unique name when uid is null' , async ( ) => {
78
+ screenshotOnFail ( { uniqueScreenshotNames : true } )
79
+
80
+ const test = createTest ( 'test1' )
81
+ event . dispatcher . emit ( event . test . failed , test )
64
82
await recorder . promise ( )
65
83
expect ( screenshotSaved . called ) . is . ok
66
84
const fileName = screenshotSaved . getCall ( 0 ) . args [ 0 ]
@@ -70,14 +88,16 @@ describe('screenshotOnFail', () => {
70
88
71
89
it ( 'should not save screenshot in BeforeSuite' , async ( ) => {
72
90
screenshotOnFail ( { uniqueScreenshotNames : true } )
73
- event . dispatcher . emit ( event . test . failed , { title : 'test1' } , null , 'BeforeSuite' )
91
+ const test = createTest ( 'test1' )
92
+ event . dispatcher . emit ( event . test . failed , test , null , 'BeforeSuite' )
74
93
await recorder . promise ( )
75
94
expect ( ! screenshotSaved . called ) . is . ok
76
95
} )
77
96
78
97
it ( 'should not save screenshot in AfterSuite' , async ( ) => {
79
98
screenshotOnFail ( { uniqueScreenshotNames : true } )
80
- event . dispatcher . emit ( event . test . failed , { title : 'test1' } , null , 'AfterSuite' )
99
+ const test = createTest ( 'test1' )
100
+ event . dispatcher . emit ( event . test . failed , test , null , 'AfterSuite' )
81
101
await recorder . promise ( )
82
102
expect ( ! screenshotSaved . called ) . is . ok
83
103
} )
0 commit comments