1
+ import * as path from 'path' ;
1
2
import * as assert from 'assert' ;
2
- import { shellTask } from '../src/lib/tools' ;
3
+ import { shellTask , spawnAsPromise } from '../src/lib/tools' ;
3
4
4
5
suite ( 'Tools tests' , ( ) => {
5
6
test ( 'shellTask returns correct output' , async ( ) => {
@@ -16,4 +17,36 @@ suite('Tools tests', () => {
16
17
const name = 'pip: fortls' ;
17
18
assert . rejects ( shellTask ( 'python3' , [ '-m' , 'pip' , 'install' , 'fortls2' ] , name ) ) ;
18
19
} ) ;
20
+
21
+ test ( 'spawnAsPromise correct stdout, stderr output exit code 0' , async ( ) => {
22
+ const [ stdout , stderr ] = await spawnAsPromise ( 'node' , [
23
+ path . resolve ( __dirname , './exit-code.js' ) ,
24
+ ] ) ;
25
+ assert . strictEqual ( stdout , 'Hello World!' ) ;
26
+ assert . strictEqual ( stderr , 'No errors' ) ;
27
+ } ) ;
28
+
29
+ test ( 'spawnAsPromise correct stdout, stderr output exit code 1' , async ( ) => {
30
+ try {
31
+ const [ stdout , stderr ] = await spawnAsPromise ( 'node' , [
32
+ path . resolve ( __dirname , './exit-code-err.js' ) ,
33
+ ] ) ;
34
+ } catch ( error ) {
35
+ const [ stdout , stderr ] = error ;
36
+ assert . strictEqual ( stdout , 'Hello World!' ) ;
37
+ assert . strictEqual ( stderr , 'Errors' ) ;
38
+ }
39
+ } ) ;
40
+
41
+ test ( 'spawnAsPromise correct stdout, stderr output exit code 1 with ignoreExitCode' , async ( ) => {
42
+ const [ stdout , stderr ] = await spawnAsPromise (
43
+ 'node' ,
44
+ [ path . resolve ( __dirname , './exit-code-err.js' ) ] ,
45
+ undefined ,
46
+ undefined ,
47
+ true
48
+ ) ;
49
+ assert . strictEqual ( stdout , 'Hello World!' ) ;
50
+ assert . strictEqual ( stderr , 'Errors' ) ;
51
+ } ) ;
19
52
} ) ;
0 commit comments