@@ -4,20 +4,40 @@ var expect = require('chai').expect;
4
4
import * as parserUtils from '../../../src/utils/parserUtils' ;
5
5
require ( 'mocha-sinon' ) ;
6
6
7
- describe ( 'parserUtils' , function ( ) {
7
+ describe ( 'parserUtils' , ( ) => {
8
8
9
- describe ( 'should throw an error' , function ( ) {
10
- it ( 'if no code is provided when parsing' , function ( ) {
11
- expect ( parserUtils . parse ) . to . throw ( Error ) ;
12
- } ) ;
9
+ describe ( 'collectFrozenNodes' , ( ) => {
10
+
11
+ it ( 'when provided a try catch block' , ( ) => {
12
+ // A try catch block has recursion. See
13
+ // http://esprima.org/demo/parse.html?code=try%20%7B%0D%0A%20%20%20%20%20%20%20%20configModule(config)%3B%0D%0A%20%20%20%20%20%20%7D%0D%0A%20%20%20%20%20%20catch%20(e)%20%7B%0D%0A%20%20%20%20%20%20%20%20process.exit(1)%3B%0D%0A%20%20%20%20%20%20%7D
13
14
15
+ let parsedTryCatch = parserUtils . parse ( `try {
16
+ configModule(config);
17
+ }
18
+ catch (e) {
19
+ process.exit(1);
20
+ }` ) ;
21
+ parserUtils . collectFrozenNodes ( parsedTryCatch ) ;
22
+ } ) ;
14
23
} ) ;
15
24
16
- it ( 'should return an empty object if an empty string is parsed' , function ( ) {
17
- var emptyObject = { } ;
25
+ describe ( 'parse' , ( ) => {
18
26
19
- var result = parserUtils . parse ( '' ) ;
20
- expect ( JSON . stringify ( result ) ) . to . equal ( JSON . stringify ( emptyObject ) ) ;
27
+ describe ( 'should throw an error' , ( ) => {
28
+ it ( 'if no code is provided when parsing' , ( ) => {
29
+ expect ( parserUtils . parse ) . to . throw ( Error ) ;
30
+ } ) ;
31
+
32
+ } ) ;
33
+
34
+
35
+ it ( 'should return an empty object if an empty string is parsed' , ( ) => {
36
+ var emptyObject = { } ;
37
+
38
+ var result = parserUtils . parse ( '' ) ;
39
+ expect ( JSON . stringify ( result ) ) . to . equal ( JSON . stringify ( emptyObject ) ) ;
40
+ } ) ;
21
41
} ) ;
22
42
23
43
} ) ;
0 commit comments