2
2
3
3
const common = require ( '../common' ) ;
4
4
const assert = require ( 'assert' ) ;
5
- const spawnSync = require ( 'child_process' ) . spawnSync ;
5
+ const { exec , spawnSync} = require ( 'child_process' ) ;
6
6
const path = require ( 'path' ) ;
7
7
8
8
const node = process . execPath ;
@@ -29,12 +29,13 @@ const notFoundRE = /^Error: Cannot find module/m;
29
29
// loop each possible option, `-c` or `--check`
30
30
syntaxArgs . forEach ( function ( args ) {
31
31
const _args = args . concat ( file ) ;
32
- const c = spawnSync ( node , _args , { encoding : 'utf8' } ) ;
33
32
34
- // no output should be produced
35
- assert . strictEqual ( c . stdout , '' , 'stdout produced' ) ;
36
- assert . strictEqual ( c . stderr , '' , 'stderr produced' ) ;
37
- assert . strictEqual ( c . status , 0 , `code === ${ c . status } ` ) ;
33
+ const cmd = [ node , ..._args ] . join ( ' ' ) ;
34
+ exec ( cmd , common . mustCall ( ( err , stdout , stderr ) => {
35
+ assert . ifError ( err ) ;
36
+ assert . strictEqual ( stdout , '' , 'stdout produced' ) ;
37
+ assert . strictEqual ( stderr , '' , 'stderr produced' ) ;
38
+ } ) ) ;
38
39
} ) ;
39
40
} ) ;
40
41
@@ -50,18 +51,20 @@ const notFoundRE = /^Error: Cannot find module/m;
50
51
// loop each possible option, `-c` or `--check`
51
52
syntaxArgs . forEach ( function ( args ) {
52
53
const _args = args . concat ( file ) ;
53
- const c = spawnSync ( node , _args , { encoding : 'utf8' } ) ;
54
+ const cmd = [ node , ..._args ] . join ( ' ' ) ;
55
+ exec ( cmd , common . mustCall ( ( err , stdout , stderr ) => {
56
+ assert . strictEqual ( err instanceof Error , true ) ;
57
+ assert . strictEqual ( err . code , 1 , `code === ${ err . code } ` ) ;
54
58
55
- // no stdout should be produced
56
- assert . strictEqual ( c . stdout , '' , 'stdout produced' ) ;
59
+ // no stdout should be produced
60
+ assert . strictEqual ( stdout , '' , 'stdout produced' ) ;
57
61
58
- // stderr should include the filename
59
- assert ( c . stderr . startsWith ( file ) , " stderr doesn't start with the filename" ) ;
62
+ // stderr should have a syntax error message
63
+ assert ( syntaxErrorRE . test ( stderr ) , ' stderr incorrect' ) ;
60
64
61
- // stderr should have a syntax error message
62
- assert ( syntaxErrorRE . test ( c . stderr ) , 'stderr incorrect' ) ;
63
-
64
- assert . strictEqual ( c . status , 1 , `code === ${ c . status } ` ) ;
65
+ // stderr should include the filename
66
+ assert ( stderr . startsWith ( file ) , "stderr doesn't start with the filename" ) ;
67
+ } ) ) ;
65
68
} ) ;
66
69
} ) ;
67
70
@@ -75,15 +78,16 @@ const notFoundRE = /^Error: Cannot find module/m;
75
78
// loop each possible option, `-c` or `--check`
76
79
syntaxArgs . forEach ( function ( args ) {
77
80
const _args = args . concat ( file ) ;
78
- const c = spawnSync ( node , _args , { encoding : 'utf8' } ) ;
79
-
80
- // no stdout should be produced
81
- assert . strictEqual ( c . stdout , '' , 'stdout produced' ) ;
81
+ const cmd = [ node , ... _args ] . join ( ' ' ) ;
82
+ exec ( cmd , common . mustCall ( ( err , stdout , stderr ) => {
83
+ // no stdout should be produced
84
+ assert . strictEqual ( stdout , '' , 'stdout produced' ) ;
82
85
83
- // stderr should have a module not found error message
84
- assert ( notFoundRE . test ( c . stderr ) , 'stderr incorrect' ) ;
86
+ // stderr should have a module not found error message
87
+ assert ( notFoundRE . test ( stderr ) , 'stderr incorrect' ) ;
85
88
86
- assert . strictEqual ( c . status , 1 , `code === ${ c . status } ` ) ;
89
+ assert . strictEqual ( err . code , 1 , `code === ${ err . code } ` ) ;
90
+ } ) ) ;
87
91
} ) ;
88
92
} ) ;
89
93
@@ -122,14 +126,15 @@ syntaxArgs.forEach(function(args) {
122
126
[ '-c' , '--check' ] . forEach ( function ( checkFlag ) {
123
127
[ '-e' , '--eval' ] . forEach ( function ( evalFlag ) {
124
128
const args = [ checkFlag , evalFlag , 'foo' ] ;
125
- const c = spawnSync ( node , args , { encoding : 'utf8' } ) ;
126
-
127
- assert (
128
- c . stderr . startsWith (
129
- `${ node } : either --check or --eval can be used, not both`
130
- )
131
- ) ;
132
-
133
- assert . strictEqual ( c . status , 9 , `code === ${ c . status } ` ) ;
129
+ const cmd = [ node , ...args ] . join ( ' ' ) ;
130
+ exec ( cmd , common . mustCall ( ( err , stdout , stderr ) => {
131
+ assert . strictEqual ( err instanceof Error , true ) ;
132
+ assert . strictEqual ( err . code , 9 , `code === ${ err . code } ` ) ;
133
+ assert (
134
+ stderr . startsWith (
135
+ `${ node } : either --check or --eval can be used, not both`
136
+ )
137
+ ) ;
138
+ } ) ) ;
134
139
} ) ;
135
140
} ) ;
0 commit comments