@@ -18,8 +18,8 @@ describe('buildSourceMapTree', () => {
18
18
const loader = jest . fn ( ( ) => null ) ;
19
19
buildSourceMapTree ( decodedMap , loader ) ;
20
20
21
+ expect ( loader ) . toHaveBeenCalledTimes ( 1 ) ;
21
22
expect ( loader ) . toHaveBeenCalledWith ( 'helloworld.js' ) ;
22
- expect ( loader . mock . calls . length ) . toBe ( 1 ) ;
23
23
} ) ;
24
24
25
25
test ( 'loader cannot be async' , ( ) => {
@@ -100,9 +100,9 @@ describe('buildSourceMapTree', () => {
100
100
} ,
101
101
] ) ;
102
102
103
+ expect ( loader ) . toHaveBeenCalledTimes ( 2 ) ;
103
104
expect ( loader ) . toHaveBeenCalledWith ( 'helloworld.js' ) ;
104
105
expect ( loader ) . toHaveBeenCalledWith ( 'two.js' ) ;
105
- expect ( loader . mock . calls . length ) . toBe ( 2 ) ;
106
106
} ) ;
107
107
108
108
test ( 'calls loader with sourceRoot joined to source file' , ( ) => {
@@ -115,8 +115,8 @@ describe('buildSourceMapTree', () => {
115
115
loader
116
116
) ;
117
117
118
+ expect ( loader ) . toHaveBeenCalledTimes ( 1 ) ;
118
119
expect ( loader ) . toHaveBeenCalledWith ( 'https://foo.com/helloworld.js' ) ;
119
- expect ( loader . mock . calls . length ) . toBe ( 1 ) ;
120
120
} ) ;
121
121
122
122
test ( 'original sources are relative to the tree path' , ( ) => {
@@ -154,10 +154,10 @@ describe('buildSourceMapTree', () => {
154
154
} ,
155
155
] ) ;
156
156
157
+ expect ( loader ) . toHaveBeenCalledTimes ( 3 ) ;
157
158
expect ( loader ) . toHaveBeenCalledWith ( 'helloworld.js' ) ;
158
159
expect ( loader ) . toHaveBeenCalledWith ( 'https://foo.com/assets/two.js' ) ;
159
160
expect ( loader ) . toHaveBeenCalledWith ( 'https://foo.com/assets/deep/three.js' ) ;
160
- expect ( loader . mock . calls . length ) . toBe ( 3 ) ;
161
161
} ) ;
162
162
163
163
test ( 'original sources are relative to the tree path, edge cases' , ( ) => {
@@ -202,10 +202,10 @@ describe('buildSourceMapTree', () => {
202
202
} ,
203
203
] ) ;
204
204
205
+ expect ( loader ) . toHaveBeenCalledTimes ( 3 ) ;
205
206
expect ( loader ) . toHaveBeenCalledWith ( 'https://foo.com/deep/helloworld.js' ) ;
206
207
expect ( loader ) . toHaveBeenCalledWith ( 'https://foo.com/two.js' ) ;
207
208
expect ( loader ) . toHaveBeenCalledWith ( 'https://foo.com/assets/three.js' ) ;
208
- expect ( loader . mock . calls . length ) . toBe ( 3 ) ;
209
209
} ) ;
210
210
211
211
test ( 'transformation maps of a sourcemap may be passed before the sourcemap' , ( ) => {
@@ -227,6 +227,28 @@ describe('buildSourceMapTree', () => {
227
227
] ) ;
228
228
} ) ;
229
229
230
+ test ( 'transformation map does not influence map url' , ( ) => {
231
+ const maps = [
232
+ {
233
+ ...decodedMap ,
234
+ sourceRoot : 'https://example.com/' ,
235
+ } , // "transformation map"
236
+ decodedMap ,
237
+ ] ;
238
+ const tree = buildSourceMapTree ( maps , ( ) => null ) ;
239
+
240
+ expect ( tree . sources ) . toMatchObject ( [
241
+ {
242
+ // helloworld.js's map
243
+ sources : [
244
+ {
245
+ source : 'helloworld.js' ,
246
+ } ,
247
+ ] ,
248
+ } ,
249
+ ] ) ;
250
+ } ) ;
251
+
230
252
test ( 'throws when transformation map has more than one source' , ( ) => {
231
253
const maps = [
232
254
{
@@ -241,6 +263,25 @@ describe('buildSourceMapTree', () => {
241
263
} ) . toThrow ( ) ;
242
264
} ) ;
243
265
266
+ test ( 'handles when transformation map has 0 sources' , ( ) => {
267
+ const maps = [
268
+ {
269
+ ...decodedMap ,
270
+ mappings : [ ] ,
271
+ sources : [ ] ,
272
+ } , // "transformation map"
273
+ decodedMap ,
274
+ ] ;
275
+ const loader = jest . fn ( ) ;
276
+
277
+ const tree = buildSourceMapTree ( maps , loader ) ;
278
+ expect ( tree . map ) . toMatchObject ( {
279
+ sources : [ ] ,
280
+ } ) ;
281
+ expect ( loader ) . toHaveBeenCalledTimes ( 1 ) ;
282
+ expect ( loader ) . toHaveBeenCalledWith ( 'helloworld.js' ) ;
283
+ } ) ;
284
+
244
285
test ( 'parses map with null source' , ( ) => {
245
286
const loader = jest . fn ( ) ;
246
287
loader
0 commit comments