@@ -88,7 +88,7 @@ describe('parse()', () => {
88
88
tokens : expect . any ( Array ) ,
89
89
tsconfigRootDir : expect . any ( String ) ,
90
90
useJSXTextNode : false ,
91
- preserveNodeMaps : false ,
91
+ preserveNodeMaps : true ,
92
92
} ,
93
93
false ,
94
94
) ;
@@ -159,72 +159,73 @@ describe('parse()', () => {
159
159
) ;
160
160
} ) ;
161
161
162
- it ( 'should not preserve node maps by default for parseAndGenerateServices(), unless `project` is set ' , ( ) => {
162
+ it ( 'should preserve node maps by default for parseAndGenerateServices()' , ( ) => {
163
163
const noOptionSet = parser . parseAndGenerateServices ( code , baseConfig ) ;
164
164
165
- expect ( noOptionSet . services . esTreeNodeToTSNodeMap ) . toBeUndefined ( ) ;
166
- expect ( noOptionSet . services . tsNodeToESTreeNodeMap ) . toBeUndefined ( ) ;
167
-
168
- const withProjectNoOptionSet = parser . parseAndGenerateServices ( code , {
169
- ...baseConfig ,
170
- project : './tsconfig.json' ,
171
- } ) ;
172
-
173
- expect ( withProjectNoOptionSet . services . esTreeNodeToTSNodeMap ) . toEqual (
174
- expect . any ( WeakMap ) ,
175
- ) ;
176
- expect ( withProjectNoOptionSet . services . tsNodeToESTreeNodeMap ) . toEqual (
177
- expect . any ( WeakMap ) ,
178
- ) ;
179
- } ) ;
180
-
181
- it ( 'should preserve node maps for parseAndGenerateServices() when option is `true`, regardless of `project` config' , ( ) => {
182
- const optionSetToTrue = parser . parseAndGenerateServices ( code , {
183
- ...baseConfig ,
184
- preserveNodeMaps : true ,
185
- } ) ;
186
-
187
- expect ( optionSetToTrue . services . esTreeNodeToTSNodeMap ) . toEqual (
165
+ expect ( noOptionSet . services . esTreeNodeToTSNodeMap ) . toEqual (
188
166
expect . any ( WeakMap ) ,
189
167
) ;
190
- expect ( optionSetToTrue . services . tsNodeToESTreeNodeMap ) . toEqual (
168
+ expect ( noOptionSet . services . tsNodeToESTreeNodeMap ) . toEqual (
191
169
expect . any ( WeakMap ) ,
192
170
) ;
193
171
194
- const withProjectOptionSetToTrue = parser . parseAndGenerateServices ( code , {
172
+ const withProjectNoOptionSet = parser . parseAndGenerateServices ( code , {
195
173
...baseConfig ,
196
- preserveNodeMaps : true ,
197
174
project : './tsconfig.json' ,
198
175
} ) ;
199
176
200
- expect ( withProjectOptionSetToTrue . services . esTreeNodeToTSNodeMap ) . toEqual (
177
+ expect ( withProjectNoOptionSet . services . esTreeNodeToTSNodeMap ) . toEqual (
201
178
expect . any ( WeakMap ) ,
202
179
) ;
203
- expect ( withProjectOptionSetToTrue . services . tsNodeToESTreeNodeMap ) . toEqual (
180
+ expect ( withProjectNoOptionSet . services . tsNodeToESTreeNodeMap ) . toEqual (
204
181
expect . any ( WeakMap ) ,
205
182
) ;
206
183
} ) ;
207
184
208
- it ( 'should not preserve node maps for parseAndGenerateServices() when option is `false`, regardless of `project` config' , ( ) => {
185
+ function checkNodeMaps ( setting : boolean ) : void {
209
186
const optionSetToFalse = parser . parseAndGenerateServices ( code , {
210
187
...baseConfig ,
211
- preserveNodeMaps : false ,
188
+ preserveNodeMaps : setting ,
212
189
} ) ;
213
190
214
- expect ( optionSetToFalse . services . esTreeNodeToTSNodeMap ) . toBeUndefined ( ) ;
215
- expect ( optionSetToFalse . services . tsNodeToESTreeNodeMap ) . toBeUndefined ( ) ;
191
+ expect (
192
+ optionSetToFalse . services . esTreeNodeToTSNodeMap . has (
193
+ optionSetToFalse . ast . body [ 0 ] ,
194
+ ) ,
195
+ ) . toBe ( setting ) ;
196
+ expect (
197
+ optionSetToFalse . services . tsNodeToESTreeNodeMap . has (
198
+ optionSetToFalse . services . program . getSourceFile ( 'estree.ts' ) ,
199
+ ) ,
200
+ ) . toBe ( setting ) ;
216
201
217
202
const withProjectOptionSetToFalse = parser . parseAndGenerateServices (
218
203
code ,
219
- { ...baseConfig , preserveNodeMaps : false , project : './tsconfig.json' } ,
204
+ {
205
+ ...baseConfig ,
206
+ preserveNodeMaps : setting ,
207
+ project : './tsconfig.json' ,
208
+ } ,
220
209
) ;
221
210
222
211
expect (
223
- withProjectOptionSetToFalse . services . esTreeNodeToTSNodeMap ,
224
- ) . toBeUndefined ( ) ;
212
+ withProjectOptionSetToFalse . services . esTreeNodeToTSNodeMap . has (
213
+ withProjectOptionSetToFalse . ast . body [ 0 ] ,
214
+ ) ,
215
+ ) . toBe ( setting ) ;
225
216
expect (
226
- withProjectOptionSetToFalse . services . tsNodeToESTreeNodeMap ,
227
- ) . toBeUndefined ( ) ;
228
- } ) ;
217
+ withProjectOptionSetToFalse . services . tsNodeToESTreeNodeMap . has (
218
+ withProjectOptionSetToFalse . services . program . getSourceFile (
219
+ 'estree.ts' ,
220
+ ) ,
221
+ ) ,
222
+ ) . toBe ( setting ) ;
223
+ }
224
+
225
+ it ( 'should preserve node maps for parseAndGenerateServices() when option is `true`, regardless of `project` config' , ( ) =>
226
+ checkNodeMaps ( true ) ) ;
227
+
228
+ it ( 'should not preserve node maps for parseAndGenerateServices() when option is `false`, regardless of `project` config' , ( ) =>
229
+ checkNodeMaps ( false ) ) ;
229
230
} ) ;
230
231
} ) ;
0 commit comments