1
1
'use strict' ;
2
2
3
- const parseFile = require ( 'test262-parser' ) . parseFile ;
4
3
const run = require ( './util/run' ) ;
5
4
const tap = require ( 'tap' ) ;
6
5
const path = require ( 'path' ) ;
7
6
8
7
const tests = [
9
- [ [ 'test/**/*.js' ] , { cwd : 'test/collateral-with-harness/test262' } ] ,
10
- [ [ '--test262Dir' , './test/collateral-with-harness/test262' , './test/collateral-with-harness/test262/test/**/*.js' ] ] ,
11
- [ [ '--test262Dir' , './test/collateral-with-harness/test262' , './test/collateral-with-harness/test262/test/**/*.js' , './test/collateral-with-harness/loose-tests/*' ] ] ,
12
- [ [ '--test262Dir' , './collateral-with-harness/test262' , 'collateral-with-harness/test262/test/**/*.js' ] , { cwd : 'test' } ] ,
13
- [ [ '--includesDir' , './test/test-includes' , './test/collateral/test/**/*.js' ] ] ,
14
- [ [ 'test/collateral-with-harness/test262/test/**/*.js' ] ] ,
15
- [ [ '--includesDir' , './test-includes' , 'collateral/test/**/*.js' ] , { cwd : 'test' } ] ,
16
- [ [ 'collateral-with-harness/test262/test/**/*.js' ] , { cwd : 'test' } ] ,
17
- [ [ '--includesDir' , './test/test-includes' , '--prelude' , './test/fixtures/prelude-a.js' , '--prelude' , './test/fixtures/prelude-b.js' , './test/collateral/test/bothStrict.js' ] , { prelude : true } ] ,
18
- [ [ '--includesDir' , './test/test-includes' , '--reporter-keys' , 'attrs,result' , './test/collateral/test/bothStrict.js' ] , { noRawResult : true } ] ,
19
- [ [ '--includesDir' , './test/test-includes' , '--reporter-keys' , 'rawResult,attrs,result' , './test/collateral/test/bothStrict.js' ] ] ,
20
- [ [ '--includesDir' , './test/test-includes' , '--reporter-keys' , 'attrs,rawResult,result' , './test/collateral/test/bothStrict.js' ] ] ,
21
- [ [ '--includesDir' , './test/test-includes' , '--reporter-keys' , 'attrs,result,rawResult' , './test/collateral/test/bothStrict.js' ] ] ,
22
- [ [ '--includesDir' , './test/test-includes' , '--transformer' , path . join ( __dirname , './transformer/spec.js' ) , '--reporter-keys' , 'attrs,result,rawResult' , './test/babel-collateral/test/spread-sngl-obj-ident.js' ] ] ,
23
- [ [ '--includesDir' , './test/test-includes' , '--preprocessor' , './test/preprocessor/spec.js' , '--reporter-keys' , 'attrs,result,rawResult' , './test/collateral-preprocessor/test/spread-sngl-obj-ident.js' ] ] ,
24
- [ [ '--includesDir' , './test/test-includes' , '--preprocessor' , './test/preprocessor/autofail.js' , '--reporter-keys' , 'attrs,result,rawResult' , './test/collateral-preprocessor/test/autofail.js' ] ] ,
8
+ [
9
+ [
10
+ 'test/**/*.js' ,
11
+ ] ,
12
+ { cwd : 'test/collateral-with-harness/test262' } ,
13
+ ] ,
14
+ [
15
+ [
16
+ '--test262Dir' , './test/collateral-with-harness/test262' ,
17
+ './test/collateral-with-harness/test262/test/**/*.js' ,
18
+ ] ,
19
+ ] ,
20
+ [
21
+ [
22
+ '--test262Dir' , './test/collateral-with-harness/test262' ,
23
+ './test/collateral-with-harness/test262/test/**/*.js' ,
24
+ './test/collateral-with-harness/loose-tests/*' ,
25
+ ] ,
26
+ ] ,
27
+ [
28
+ [
29
+ '--test262Dir' , './collateral-with-harness/test262' ,
30
+ 'collateral-with-harness/test262/test/**/*.js' ,
31
+ ] ,
32
+ { cwd : 'test' } ,
33
+ ] ,
34
+ [
35
+ [
36
+ '--includesDir' , './test/test-includes' ,
37
+ './test/collateral/test/**/*.js' ,
38
+ ] ,
39
+ ] ,
40
+ [
41
+ [
42
+ 'test/collateral-with-harness/test262/test/**/*.js' ,
43
+ ] ,
44
+ ] ,
45
+ [
46
+ [
47
+ '--includesDir' , './test-includes' ,
48
+ 'collateral/test/**/*.js' ,
49
+ ] ,
50
+ { cwd : 'test' } ,
51
+ ] ,
52
+ [
53
+ [
54
+ 'collateral-with-harness/test262/test/**/*.js' ,
55
+ ] ,
56
+ { cwd : 'test' } ,
57
+ ] ,
58
+ [
59
+ [
60
+ '--includesDir' , './test/test-includes' ,
61
+ '--prelude' , './test/fixtures/prelude-a.js' ,
62
+ '--prelude' , './test/fixtures/prelude-b.js' ,
63
+ './test/collateral/test/bothStrict.js' ,
64
+ ] ,
65
+ { prelude : true } ,
66
+ ] ,
67
+ [
68
+ [
69
+ '--includesDir' , './test/test-includes' ,
70
+ '--reporter-keys' , 'attrs,result' ,
71
+ './test/collateral/test/bothStrict.js' ,
72
+ ] ,
73
+ { noRawResult : true } ,
74
+ ] ,
75
+ [
76
+ [
77
+ '--includesDir' , './test/test-includes' ,
78
+ '--reporter-keys' , 'rawResult,attrs,result' ,
79
+ './test/collateral/test/bothStrict.js' ,
80
+ ] ,
81
+ ] ,
82
+ [
83
+ [
84
+ '--includesDir' , './test/test-includes' ,
85
+ '--reporter-keys' , 'attrs,rawResult,result' ,
86
+ './test/collateral/test/bothStrict.js' ,
87
+ ] ,
88
+ ] ,
89
+ [
90
+ [
91
+ '--includesDir' , './test/test-includes' ,
92
+ '--reporter-keys' , 'attrs,result,rawResult' ,
93
+ './test/collateral/test/bothStrict.js' ,
94
+ ] ,
95
+ ] ,
96
+ [
97
+ [
98
+ '--includesDir' , './test/test-includes' ,
99
+ '--transformer' , './test/transformer/spec.js' ,
100
+ '--reporter-keys' , 'attrs,result,rawResult' ,
101
+ './test/babel-collateral/test/spread-sngl-obj-ident.js' ,
102
+ ] ,
103
+ ] ,
104
+ [
105
+ [
106
+ '--includesDir' , './test/test-includes' ,
107
+ '--preprocessor' , './test/preprocessor/spec.js' ,
108
+ '--reporter-keys' , 'attrs,result,rawResult' ,
109
+ './test/collateral-preprocessor/test/spread-sngl-obj-ident.js' ,
110
+ ]
111
+ ] ,
112
+ [
113
+ [
114
+ '--includesDir' , './test/test-includes' ,
115
+ '--preprocessor' , './test/preprocessor/autofail.js' ,
116
+ '--reporter-keys' , 'attrs,result,rawResult' ,
117
+ './test/collateral-preprocessor/test/autofail.js' ,
118
+ ]
119
+ ] ,
25
120
] . reduce ( ( accum , a ) => {
26
121
let b = a . slice ( ) ;
27
122
@@ -38,9 +133,8 @@ const tests = [
38
133
return accum ;
39
134
} , [ ] ) ;
40
135
41
-
42
-
43
- Promise . all ( tests . map ( args => run ( ...args ) . then ( validate ) ) )
136
+ Promise . all ( tests . map ( args => run ( ...args ) ) )
137
+ . then ( outcomes => outcomes . map ( outcome => validate ( outcome ) ) )
44
138
. catch ( reportRunError ) ;
45
139
46
140
function reportRunError ( error ) {
@@ -50,8 +144,10 @@ function reportRunError(error) {
50
144
}
51
145
52
146
function validate ( { args, records, options = { prelude : false } } ) {
147
+
53
148
if ( options . reporter === 'json' ) {
54
149
records . forEach ( record => {
150
+
55
151
const description = options . prelude ?
56
152
`${ record . attrs . description } with prelude` :
57
153
record . attrs . description ;
@@ -66,22 +162,29 @@ function validate({ args, records, options = { prelude: false } }) {
66
162
}
67
163
}
68
164
69
- assert . notEqual ( record . attrs . expected , undefined , 'Test has an "expected" frontmatter' ) ;
165
+ assert . notEqual ( record . attrs . expected , undefined ,
166
+ 'Test has an "expected" frontmatter' ) ;
167
+
70
168
if ( ! record . attrs . expected ) {
71
169
// can't do anything else
72
170
assert . end ( ) ;
73
171
return ;
74
172
}
75
173
76
- assert . equal ( record . result . pass , record . attrs . expected . pass , 'Test passes or fails as expected' ) ;
174
+ assert . equal ( record . result . pass , record . attrs . expected . pass ,
175
+ 'Test passes or fails as expected' ) ;
77
176
78
177
if ( record . attrs . expected . message ) {
79
- assert . equal ( record . result . message , record . attrs . expected . message , 'Test fails with appropriate message' ) ;
178
+ assert . equal ( record . result . message , record . attrs . expected . message ,
179
+ 'Test fails with appropriate message' ) ;
80
180
}
81
181
82
182
if ( options . prelude ) {
83
- assert . ok ( record . rawResult . stdout . includes ( 'prelude a!' ) , 'Has prelude-a content' ) ;
84
- assert . ok ( record . rawResult . stdout . includes ( 'prelude b!' ) , 'Has prelude-b content' ) ;
183
+ assert . ok ( record . rawResult . stdout . includes ( 'prelude a!' ) ,
184
+ 'Has prelude-a content' ) ;
185
+
186
+ assert . ok ( record . rawResult . stdout . includes ( 'prelude b!' ) ,
187
+ 'Has prelude-b content' ) ;
85
188
}
86
189
87
190
if ( options . noRawResult ) {
@@ -104,7 +207,7 @@ function validate({ args, records, options = { prelude: false } }) {
104
207
const fail = stdouts . filter ( out => out . startsWith ( 'FAIL' ) ) . length ;
105
208
const [ report , passed , failed ] = captured ;
106
209
107
- assert . equal ( report , `Ran ${ pass + fail } tests` ) ;
210
+ assert . equal ( report . trim ( ) , `Ran ${ pass + fail } tests` ) ;
108
211
assert . equal ( passed , `${ pass } passed` ) ;
109
212
assert . equal ( failed , `${ fail } failed` ) ;
110
213
assert . end ( ) ;
0 commit comments