@@ -28,49 +28,81 @@ function isEnabled(name) {
2828 return enabledTests . includes ( name ) ;
2929}
3030
31- function runEndToEndTest ( name , flags , handle ) {
32- if ( isEnabled ( name ) ) {
31+ async function runEndToEndTest ( name , flags , handle ) {
32+ if ( ! isEnabled ( name ) ) {
33+ return ;
34+ }
35+ return new Promise ( ( resolve ) => {
3336 console . log ( `Running e2e test: ${ name } ` ) ;
3437 exec ( `node ./bin/as-test.js --config tests/e2e/${ name } /as-test.config.js ${ flags } ` , ( error , stdout , stderr ) => {
35- // standard check
36- const expectStdOut = readFileSync ( `tests/e2e/${ name } /stdout.txt` , "utf-8" ) ;
37- if ( expectStdOut !== stdout ) {
38- console . log ( `========= STDOUT ${ name } =========` ) ;
39- console . log ( getDiff ( expectStdOut , stdout ) ) ;
40- console . log ( `========= STDERR ${ name } =========` ) ;
41- console . log ( stderr ) ;
42- process . exit ( 1 ) ;
43- }
44- // customize check
4538 handle ( error , stdout , stderr ) ;
39+ resolve ( ) ;
4640 } ) ;
41+ } ) ;
42+ }
43+
44+ function checkOutput ( name , stdout , stderr ) {
45+ const expectStdOut = readFileSync ( `tests/e2e/${ name } /stdout.txt` , "utf-8" ) ;
46+ if ( expectStdOut !== stdout ) {
47+ console . log ( `========= STDOUT ${ name } =========` ) ;
48+ console . log ( getDiff ( expectStdOut , stdout ) ) ;
49+ console . log ( `========= STDERR ${ name } =========` ) ;
50+ console . log ( stderr ) ;
51+ process . exit ( 1 ) ;
4752 }
4853}
4954
5055runEndToEndTest ( "assertFailed" , "" , ( error , stdout , stderr ) => {
56+ checkOutput ( "assertFailed" , stdout , stderr ) ;
5157 assert ( error . code === 1 ) ;
5258} ) ;
5359
5460runEndToEndTest ( "compilationFailed" , "" , ( error , stdout , stderr ) => {
61+ checkOutput ( "compilationFailed" , stdout , stderr ) ;
5562 assert ( error . code === 2 ) ;
5663} ) ;
5764
58- runEndToEndTest ( "isolated-cli" , "--isolated false" , ( error , stdout , stderr ) => { } ) ;
59- runEndToEndTest ( "isolated-false" , "" , ( error , stdout , stderr ) => { } ) ;
60- runEndToEndTest ( "isolated-true" , "" , ( error , stdout , stderr ) => { } ) ;
65+ runEndToEndTest ( "isolated-cli" , "--isolated false" , ( error , stdout , stderr ) => {
66+ checkOutput ( "isolated-cli" , stdout , stderr ) ;
67+ } ) ;
68+ runEndToEndTest ( "isolated-false" , "" , ( error , stdout , stderr ) => {
69+ checkOutput ( "isolated-false" , stdout , stderr ) ;
70+ } ) ;
71+ runEndToEndTest ( "isolated-true" , "" , ( error , stdout , stderr ) => {
72+ checkOutput ( "isolated-true" , stdout , stderr ) ;
73+ } ) ;
74+
75+ ( async ( ) => {
76+ let mergedStdout = "" ;
77+ let mergedStderr = "" ;
78+ await runEndToEndTest ( "on-failure-only" , "" , ( error , stdout , stderr ) => {
79+ mergedStdout += stdout ;
80+ mergedStderr += stderr ;
81+ } ) ;
82+ mergedStdout += "\n" ;
83+ mergedStderr += "\n" ;
84+ await runEndToEndTest ( "on-failure-only" , "--onlyFailures" , ( error , stdout , stderr ) => {
85+ mergedStdout += stdout ;
86+ mergedStderr += stderr ;
87+ } ) ;
88+ checkOutput ( "on-failure-only" , mergedStdout , mergedStderr ) ;
89+ } ) ( ) ;
6190
6291runEndToEndTest ( "printLogInFailedInfo" , "" , ( error , stdout , stderr ) => {
92+ checkOutput ( "printLogInFailedInfo" , stdout , stderr ) ;
6393 assert ( error . code === 1 ) ;
6494} ) ;
6595
6696runEndToEndTest ( "setup-teardown" , "" , ( error , stdout , stderr ) => {
97+ checkOutput ( "setup-teardown" , stdout , stderr ) ;
6798 assert ( error . code === 1 ) ;
6899} ) ;
69100
70101runEndToEndTest (
71102 "testFiles" ,
72103 "--testFiles tests/e2e/testFiles/succeed_0.test.ts tests/e2e/testFiles/succeed_1.test.ts" ,
73104 ( error , stdout , stderr ) => {
105+ checkOutput ( "testFiles" , stdout , stderr ) ;
74106 assert ( error === null ) ;
75107 }
76108) ;
0 commit comments