Skip to content

Commit 87d12e6

Browse files
felipeochoacpojer
authored andcommitted
Sourcemaps (#3458)
* Allow transformers to specify source maps even if not using coverage * Test the new source map behavior Under the new transformer rules, if the transformer provides us a sourcemap, we'll take it, regardless of the coverage settings. This means source maps are cached alongside the originals, and `Runtime` will populate its `_sourceMapRegistry` * Install source-map-support into jasmine runtime * Add tests for sourcemap support * update source map cache test to use writeFileAtomic * move up source-map-support to top-level dependency It was already included as a transitive dependency: babel-core -> babel-register -> source-map-support * Update snapshot * Fix lint errors * move source-map-support into jest-jasmine2 package.json * remove hash from coverage_remapping integration test snapshot See #3458 (comment)
1 parent c8b68bb commit 87d12e6

11 files changed

Lines changed: 198 additions & 60 deletions

File tree

integration_tests/__tests__/__snapshots__/coverage_remapping.test.js.snap

Lines changed: 63 additions & 55 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33
exports[`maps code coverage against original source 1`] = `
44
Object {
55
"covered.ts": Object {
6+
"_coverageSchema": "332fd63041d2c1bcb487cc26dd0d5f7d97098a6c",
67
"b": Object {
78
"0": Array [
89
1,
@@ -24,149 +25,153 @@ Object {
2425
},
2526
"branchMap": Object {
2627
"0": Object {
28+
"line": 4,
2729
"loc": Object {
2830
"end": Object {
29-
"column": 9,
30-
"line": 5,
31+
"column": 11,
32+
"line": 6,
3133
},
3234
"start": Object {
33-
"column": 8,
34-
"line": 5,
35+
"column": 18,
36+
"line": 4,
3537
},
3638
},
3739
"locations": Array [
3840
Object {
3941
"end": Object {
40-
"column": 9,
42+
"column": 11,
4143
"line": 5,
4244
},
4345
"start": Object {
44-
"column": 8,
46+
"column": 10,
4547
"line": 5,
4648
},
4749
},
4850
Object {
4951
"end": Object {
50-
"column": 9,
52+
"column": 11,
5153
"line": 6,
5254
},
5355
"start": Object {
54-
"column": 8,
56+
"column": 10,
5557
"line": 6,
5658
},
5759
},
5860
],
5961
"type": "cond-expr",
6062
},
6163
"1": Object {
64+
"line": 7,
6265
"loc": Object {
6366
"end": Object {
64-
"column": 37,
67+
"column": 30,
6568
"line": 7,
6669
},
6770
"start": Object {
68-
"column": 36,
71+
"column": 18,
6972
"line": 7,
7073
},
7174
},
7275
"locations": Array [
7376
Object {
7477
"end": Object {
75-
"column": 37,
78+
"column": 26,
7679
"line": 7,
7780
},
7881
"start": Object {
79-
"column": 36,
82+
"column": 25,
8083
"line": 7,
8184
},
8285
},
8386
Object {
8487
"end": Object {
85-
"column": 41,
88+
"column": 30,
8689
"line": 7,
8790
},
8891
"start": Object {
89-
"column": 40,
92+
"column": 29,
9093
"line": 7,
9194
},
9295
},
9396
],
9497
"type": "cond-expr",
9598
},
9699
"2": Object {
100+
"line": 8,
97101
"loc": Object {
98102
"end": Object {
99-
"column": 33,
103+
"column": 39,
100104
"line": 8,
101105
},
102106
"start": Object {
103-
"column": 29,
107+
"column": 18,
104108
"line": 8,
105109
},
106110
},
107111
"locations": Array [
108112
Object {
109113
"end": Object {
110-
"column": 33,
114+
"column": 22,
111115
"line": 8,
112116
},
113117
"start": Object {
114-
"column": 29,
118+
"column": 18,
115119
"line": 8,
116120
},
117121
},
118122
Object {
119123
"end": Object {
120-
"column": 41,
124+
"column": 30,
121125
"line": 8,
122126
},
123127
"start": Object {
124-
"column": 37,
128+
"column": 26,
125129
"line": 8,
126130
},
127131
},
128132
Object {
129133
"end": Object {
130-
"column": 50,
134+
"column": 39,
131135
"line": 8,
132136
},
133137
"start": Object {
134-
"column": 45,
138+
"column": 34,
135139
"line": 8,
136140
},
137141
},
138142
],
139143
"type": "binary-expr",
140144
},
141145
"3": Object {
146+
"line": 9,
142147
"loc": Object {
143148
"end": Object {
144-
"column": 42,
149+
"column": 79,
145150
"line": 9,
146151
},
147152
"start": Object {
148-
"column": 32,
153+
"column": 13,
149154
"line": 9,
150155
},
151156
},
152157
"locations": Array [
153158
Object {
154159
"end": Object {
155-
"column": 42,
160+
"column": 48,
156161
"line": 9,
157162
},
158163
"start": Object {
159-
"column": 32,
164+
"column": 20,
160165
"line": 9,
161166
},
162167
},
163168
Object {
164169
"end": Object {
165-
"column": 55,
170+
"column": 79,
166171
"line": 9,
167172
},
168173
"start": Object {
169-
"column": 45,
174+
"column": 51,
170175
"line": 9,
171176
},
172177
},
@@ -183,21 +188,22 @@ Object {
183188
"0": Object {
184189
"decl": Object {
185190
"end": Object {
186-
"column": 28,
191+
"column": 36,
187192
"line": 3,
188193
},
189194
"start": Object {
190-
"column": 9,
195+
"column": 26,
191196
"line": 3,
192197
},
193198
},
199+
"line": 3,
194200
"loc": Object {
195201
"end": Object {
196202
"column": 1,
197-
"line": 12,
203+
"line": 11,
198204
},
199205
"start": Object {
200-
"column": 49,
206+
"column": 43,
201207
"line": 3,
202208
},
203209
},
@@ -206,17 +212,18 @@ Object {
206212
"1": Object {
207213
"decl": Object {
208214
"end": Object {
209-
"column": 37,
215+
"column": 21,
210216
"line": 9,
211217
},
212218
"start": Object {
213-
"column": 32,
219+
"column": 20,
214220
"line": 9,
215221
},
216222
},
223+
"line": 9,
217224
"loc": Object {
218225
"end": Object {
219-
"column": 42,
226+
"column": 48,
220227
"line": 9,
221228
},
222229
"start": Object {
@@ -229,21 +236,22 @@ Object {
229236
"2": Object {
230237
"decl": Object {
231238
"end": Object {
232-
"column": 50,
239+
"column": 52,
233240
"line": 9,
234241
},
235242
"start": Object {
236-
"column": 45,
243+
"column": 51,
237244
"line": 9,
238245
},
239246
},
247+
"line": 9,
240248
"loc": Object {
241249
"end": Object {
242-
"column": 55,
250+
"column": 79,
243251
"line": 9,
244252
},
245253
"start": Object {
246-
"column": 45,
254+
"column": 63,
247255
"line": 9,
248256
},
249257
},
@@ -264,8 +272,8 @@ Object {
264272
"statementMap": Object {
265273
"0": Object {
266274
"end": Object {
267-
"column": 1,
268-
"line": 12,
275+
"column": 2,
276+
"line": 11,
269277
},
270278
"start": Object {
271279
"column": 0,
@@ -274,72 +282,72 @@ Object {
274282
},
275283
"1": Object {
276284
"end": Object {
277-
"column": 9,
285+
"column": 11,
278286
"line": 6,
279287
},
280288
"start": Object {
281-
"column": 29,
289+
"column": 18,
282290
"line": 4,
283291
},
284292
},
285293
"2": Object {
286294
"end": Object {
287-
"column": 41,
295+
"column": 30,
288296
"line": 7,
289297
},
290298
"start": Object {
291-
"column": 29,
299+
"column": 18,
292300
"line": 7,
293301
},
294302
},
295303
"3": Object {
296304
"end": Object {
297-
"column": 50,
305+
"column": 39,
298306
"line": 8,
299307
},
300308
"start": Object {
301-
"column": 29,
309+
"column": 18,
302310
"line": 8,
303311
},
304312
},
305313
"4": Object {
306314
"end": Object {
307-
"column": 55,
315+
"column": 79,
308316
"line": 9,
309317
},
310318
"start": Object {
311-
"column": 25,
319+
"column": 13,
312320
"line": 9,
313321
},
314322
},
315323
"5": Object {
316324
"end": Object {
317-
"column": 42,
325+
"column": 46,
318326
"line": 9,
319327
},
320328
"start": Object {
321-
"column": 38,
329+
"column": 34,
322330
"line": 9,
323331
},
324332
},
325333
"6": Object {
326334
"end": Object {
327-
"column": 55,
335+
"column": 77,
328336
"line": 9,
329337
},
330338
"start": Object {
331-
"column": 51,
339+
"column": 65,
332340
"line": 9,
333341
},
334342
},
335343
"7": Object {
336344
"end": Object {
337345
"column": 17,
338-
"line": 11,
346+
"line": 10,
339347
},
340348
"start": Object {
341349
"column": 4,
342-
"line": 11,
350+
"line": 10,
343351
},
344352
},
345353
},

integration_tests/__tests__/coverage_remapping.test.js

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,7 @@ it('maps code coverage against original source', () => {
3131
// reduce absolute paths embedded in the coverage map to just filenames
3232
Object.keys(coverageMap).forEach(filename => {
3333
coverageMap[filename].path = path.basename(coverageMap[filename].path);
34+
delete coverageMap[filename].hash;
3435
coverageMap[path.basename(filename)] = coverageMap[filename];
3536
delete coverageMap[filename];
3637
});

packages/jest-jasmine2/package.json

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,8 @@
1515
"jest-matcher-utils": "^21.2.1",
1616
"jest-message-util": "^21.2.1",
1717
"jest-snapshot": "^21.2.1",
18-
"p-cancelable": "^0.3.0"
18+
"p-cancelable": "^0.3.0",
19+
"source-map-support": "^0.5.0"
1920
},
2021
"devDependencies": {
2122
"jest-runtime": "^21.2.1"

0 commit comments

Comments
 (0)