@financial-times/cp-content-pipeline-schema 3.13.0 → 3.15.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +39 -0
- package/lib/datasources/origami-image.js +2 -2
- package/lib/datasources/origami-image.js.map +1 -1
- package/lib/datasources/url-management.js +45 -7
- package/lib/datasources/url-management.js.map +1 -1
- package/lib/datasources/url-management.test.js +97 -0
- package/lib/datasources/url-management.test.js.map +1 -1
- package/lib/model/Concept.js +7 -1
- package/lib/model/Concept.js.map +1 -1
- package/lib/model/Content.js +6 -1
- package/lib/model/Content.js.map +1 -1
- package/lib/model/Image.test.js +3 -3
- package/lib/model/RichText.test.js +9 -9
- package/lib/resolvers/content-tree/bodyXMLToTree.test.js +179 -176
- package/lib/resolvers/content-tree/bodyXMLToTree.test.js.map +1 -1
- package/lib/resolvers/content-tree/tagMappings.js +7 -0
- package/lib/resolvers/content-tree/tagMappings.js.map +1 -1
- package/package.json +4 -4
- package/src/datasources/origami-image.ts +2 -2
- package/src/datasources/url-management.test.ts +126 -0
- package/src/datasources/url-management.ts +48 -8
- package/src/model/Concept.ts +7 -1
- package/src/model/Content.ts +6 -1
- package/src/model/Image.test.ts +3 -3
- package/src/model/RichText.test.ts +9 -9
- package/src/model/__snapshots__/Byline.test.ts.snap +99 -99
- package/src/model/__snapshots__/RichText.test.ts.snap +326 -306
- package/src/resolvers/content-tree/bodyXMLToTree.test.ts +179 -176
- package/src/resolvers/content-tree/tagMappings.ts +7 -0
- package/tsconfig.tsbuildinfo +1 -1
|
@@ -27,11 +27,11 @@ describe('bodyXMLToTree', () => {
|
|
|
27
27
|
it('converts XML to tree', () => {
|
|
28
28
|
const xml = `<body><p>Hello world</p></body>`;
|
|
29
29
|
expect((0, bodyXMLToTree_1.default)(xml, tagMappings_1.default, mockContext)).toMatchInlineSnapshot(`
|
|
30
|
-
|
|
31
|
-
"children":
|
|
32
|
-
|
|
33
|
-
"children":
|
|
34
|
-
|
|
30
|
+
{
|
|
31
|
+
"children": [
|
|
32
|
+
{
|
|
33
|
+
"children": [
|
|
34
|
+
{
|
|
35
35
|
"type": "text",
|
|
36
36
|
"value": "Hello world",
|
|
37
37
|
},
|
|
@@ -72,17 +72,17 @@ describe('bodyXMLToTree', () => {
|
|
|
72
72
|
}),
|
|
73
73
|
};
|
|
74
74
|
expect((0, bodyXMLToTree_1.default)(xml, tags)).toMatchInlineSnapshot(`
|
|
75
|
-
|
|
76
|
-
"children":
|
|
77
|
-
|
|
75
|
+
{
|
|
76
|
+
"children": [
|
|
77
|
+
{
|
|
78
78
|
"id": "id",
|
|
79
79
|
"type": "image-set",
|
|
80
80
|
},
|
|
81
|
-
|
|
82
|
-
"children":
|
|
83
|
-
|
|
84
|
-
"children":
|
|
85
|
-
|
|
81
|
+
{
|
|
82
|
+
"children": [
|
|
83
|
+
{
|
|
84
|
+
"children": [
|
|
85
|
+
{
|
|
86
86
|
"alt": "alt",
|
|
87
87
|
"caption": "caption",
|
|
88
88
|
"credit": "credit",
|
|
@@ -106,20 +106,20 @@ describe('bodyXMLToTree', () => {
|
|
|
106
106
|
it('includes known children of unknown tags', () => {
|
|
107
107
|
const xml = `<body><p>P1</p><unknown><p>P2</p></unknown></body>`;
|
|
108
108
|
expect((0, bodyXMLToTree_1.default)(xml, tagMappings_1.default)).toMatchInlineSnapshot(`
|
|
109
|
-
|
|
110
|
-
"children":
|
|
111
|
-
|
|
112
|
-
"children":
|
|
113
|
-
|
|
109
|
+
{
|
|
110
|
+
"children": [
|
|
111
|
+
{
|
|
112
|
+
"children": [
|
|
113
|
+
{
|
|
114
114
|
"type": "text",
|
|
115
115
|
"value": "P1",
|
|
116
116
|
},
|
|
117
117
|
],
|
|
118
118
|
"type": "paragraph",
|
|
119
119
|
},
|
|
120
|
-
|
|
121
|
-
"children":
|
|
122
|
-
|
|
120
|
+
{
|
|
121
|
+
"children": [
|
|
122
|
+
{
|
|
123
123
|
"type": "text",
|
|
124
124
|
"value": "P2",
|
|
125
125
|
},
|
|
@@ -135,9 +135,9 @@ describe('bodyXMLToTree', () => {
|
|
|
135
135
|
it("maps tags that aren't expected to have any children (e.g. tweet reference)", () => {
|
|
136
136
|
const xml = '<body><a data-asset-type="tweet" data-embedded="true" href="https://twitter.com/EllliotttB/status/1610358432577748992?s=20&t=pcwJG65_c10H3snOQWzI4w">https://twitter.com/EllliotttB/status/1610358432577748992?s=20&t=pcwJG65_c10H3snOQWzI4w</a></body>';
|
|
137
137
|
expect((0, bodyXMLToTree_1.default)(xml, tagMappings_1.default)).toMatchInlineSnapshot(`
|
|
138
|
-
|
|
139
|
-
"children":
|
|
140
|
-
|
|
138
|
+
{
|
|
139
|
+
"children": [
|
|
140
|
+
{
|
|
141
141
|
"id": "https://twitter.com/EllliotttB/status/1610358432577748992?s=20&t=pcwJG65_c10H3snOQWzI4w",
|
|
142
142
|
"type": "tweet",
|
|
143
143
|
},
|
|
@@ -150,20 +150,21 @@ describe('bodyXMLToTree', () => {
|
|
|
150
150
|
it('collapses nested .n-content-layout__slots', () => {
|
|
151
151
|
const xml = '<body><div class="n-content-layout"><div class="n-content-layout__slot"><h4></h4><div class="n-content-layout__slot"><p>text</p></div></div></div></body>';
|
|
152
152
|
expect((0, bodyXMLToTree_1.default)(xml, tagMappings_1.default)).toMatchInlineSnapshot(`
|
|
153
|
-
|
|
154
|
-
"children":
|
|
155
|
-
|
|
156
|
-
"children":
|
|
157
|
-
|
|
158
|
-
"children":
|
|
159
|
-
|
|
160
|
-
"children":
|
|
153
|
+
{
|
|
154
|
+
"children": [
|
|
155
|
+
{
|
|
156
|
+
"children": [
|
|
157
|
+
{
|
|
158
|
+
"children": [
|
|
159
|
+
{
|
|
160
|
+
"children": [],
|
|
161
|
+
"fragmentIdentifier": undefined,
|
|
161
162
|
"level": "label",
|
|
162
163
|
"type": "heading",
|
|
163
164
|
},
|
|
164
|
-
|
|
165
|
-
"children":
|
|
166
|
-
|
|
165
|
+
{
|
|
166
|
+
"children": [
|
|
167
|
+
{
|
|
167
168
|
"type": "text",
|
|
168
169
|
"value": "text",
|
|
169
170
|
},
|
|
@@ -191,16 +192,16 @@ describe('bodyXMLToTree', () => {
|
|
|
191
192
|
it('should handle slots', () => {
|
|
192
193
|
const xml = '<body><div class="n-content-layout"><div class="n-content-layout__slot"></div><div class="n-content-layout__slot"></div></body>';
|
|
193
194
|
expect((0, bodyXMLToTree_1.default)(xml, tagMappings_1.default)).toMatchInlineSnapshot(`
|
|
194
|
-
|
|
195
|
-
"children":
|
|
196
|
-
|
|
197
|
-
"children":
|
|
198
|
-
|
|
199
|
-
"children":
|
|
195
|
+
{
|
|
196
|
+
"children": [
|
|
197
|
+
{
|
|
198
|
+
"children": [
|
|
199
|
+
{
|
|
200
|
+
"children": [],
|
|
200
201
|
"type": "layout-slot",
|
|
201
202
|
},
|
|
202
|
-
|
|
203
|
-
"children":
|
|
203
|
+
{
|
|
204
|
+
"children": [],
|
|
204
205
|
"type": "layout-slot",
|
|
205
206
|
},
|
|
206
207
|
],
|
|
@@ -218,21 +219,22 @@ describe('bodyXMLToTree', () => {
|
|
|
218
219
|
it('should handle heading and slots', () => {
|
|
219
220
|
const xml = '<body><div class="n-content-layout"><h3></h3><div class="n-content-layout__slot"></div><div class="n-content-layout__slot"></div></body>';
|
|
220
221
|
expect((0, bodyXMLToTree_1.default)(xml, tagMappings_1.default, mockContext)).toMatchInlineSnapshot(`
|
|
221
|
-
|
|
222
|
-
"children":
|
|
223
|
-
|
|
224
|
-
"children":
|
|
225
|
-
|
|
226
|
-
"children":
|
|
222
|
+
{
|
|
223
|
+
"children": [
|
|
224
|
+
{
|
|
225
|
+
"children": [
|
|
226
|
+
{
|
|
227
|
+
"children": [],
|
|
228
|
+
"fragmentIdentifier": undefined,
|
|
227
229
|
"level": "subheading",
|
|
228
230
|
"type": "heading",
|
|
229
231
|
},
|
|
230
|
-
|
|
231
|
-
"children":
|
|
232
|
+
{
|
|
233
|
+
"children": [],
|
|
232
234
|
"type": "layout-slot",
|
|
233
235
|
},
|
|
234
|
-
|
|
235
|
-
"children":
|
|
236
|
+
{
|
|
237
|
+
"children": [],
|
|
236
238
|
"type": "layout-slot",
|
|
237
239
|
},
|
|
238
240
|
],
|
|
@@ -250,21 +252,22 @@ describe('bodyXMLToTree', () => {
|
|
|
250
252
|
it('should log an error on unexpected child after heading', () => {
|
|
251
253
|
const xml = '<body><div class="n-content-layout"><h3></h3><div class="n-content-layout__slot"></div><p></p></body>';
|
|
252
254
|
expect((0, bodyXMLToTree_1.default)(xml, tagMappings_1.default, mockContext)).toMatchInlineSnapshot(`
|
|
253
|
-
|
|
254
|
-
"children":
|
|
255
|
-
|
|
256
|
-
"children":
|
|
257
|
-
|
|
258
|
-
"children":
|
|
255
|
+
{
|
|
256
|
+
"children": [
|
|
257
|
+
{
|
|
258
|
+
"children": [
|
|
259
|
+
{
|
|
260
|
+
"children": [],
|
|
261
|
+
"fragmentIdentifier": undefined,
|
|
259
262
|
"level": "subheading",
|
|
260
263
|
"type": "heading",
|
|
261
264
|
},
|
|
262
|
-
|
|
263
|
-
"children":
|
|
265
|
+
{
|
|
266
|
+
"children": [],
|
|
264
267
|
"type": "layout-slot",
|
|
265
268
|
},
|
|
266
|
-
|
|
267
|
-
"children":
|
|
269
|
+
{
|
|
270
|
+
"children": [],
|
|
268
271
|
"type": "paragraph",
|
|
269
272
|
},
|
|
270
273
|
],
|
|
@@ -279,10 +282,10 @@ describe('bodyXMLToTree', () => {
|
|
|
279
282
|
`);
|
|
280
283
|
expect(mockLogWarn).toBeCalled();
|
|
281
284
|
expect(mockLogWarn.mock.lastCall).toMatchInlineSnapshot(`
|
|
282
|
-
|
|
283
|
-
|
|
284
|
-
"error":
|
|
285
|
-
"actual":
|
|
285
|
+
[
|
|
286
|
+
{
|
|
287
|
+
"error": {
|
|
288
|
+
"actual": [
|
|
286
289
|
"layout-slot",
|
|
287
290
|
"paragraph",
|
|
288
291
|
],
|
|
@@ -298,16 +301,16 @@ describe('bodyXMLToTree', () => {
|
|
|
298
301
|
it('should log an error on unexpected child after slots', () => {
|
|
299
302
|
const xml = '<body><div class="n-content-layout"><div class="n-content-layout__slot"></div><p></p></body>';
|
|
300
303
|
expect((0, bodyXMLToTree_1.default)(xml, tagMappings_1.default, mockContext)).toMatchInlineSnapshot(`
|
|
301
|
-
|
|
302
|
-
"children":
|
|
303
|
-
|
|
304
|
-
"children":
|
|
305
|
-
|
|
306
|
-
"children":
|
|
304
|
+
{
|
|
305
|
+
"children": [
|
|
306
|
+
{
|
|
307
|
+
"children": [
|
|
308
|
+
{
|
|
309
|
+
"children": [],
|
|
307
310
|
"type": "layout-slot",
|
|
308
311
|
},
|
|
309
|
-
|
|
310
|
-
"children":
|
|
312
|
+
{
|
|
313
|
+
"children": [],
|
|
311
314
|
"type": "paragraph",
|
|
312
315
|
},
|
|
313
316
|
],
|
|
@@ -322,10 +325,10 @@ describe('bodyXMLToTree', () => {
|
|
|
322
325
|
`);
|
|
323
326
|
expect(mockLogWarn).toBeCalled();
|
|
324
327
|
expect(mockLogWarn.mock.lastCall).toMatchInlineSnapshot(`
|
|
325
|
-
|
|
326
|
-
|
|
327
|
-
"error":
|
|
328
|
-
"actual":
|
|
328
|
+
[
|
|
329
|
+
{
|
|
330
|
+
"error": {
|
|
331
|
+
"actual": [
|
|
329
332
|
"layout-slot",
|
|
330
333
|
"paragraph",
|
|
331
334
|
],
|
|
@@ -343,26 +346,26 @@ describe('bodyXMLToTree', () => {
|
|
|
343
346
|
it('parses tables', () => {
|
|
344
347
|
const xml = '<table class="data-table" data-table-collapse-rownum="" data-table-layout-largescreen="auto" data-table-layout-smallscreen="auto" data-table-theme="auto"><caption>Nulla iaculis tempus augue</caption><thead><tr><th data-column-hidden="none" data-column-sortable="false" data-column-type="string">libero mollis</th><th data-column-hidden="none" data-column-sortable="false" data-column-type="string">pretium nunc</th><th data-column-hidden="none" data-column-sortable="false" data-column-type="string">euismod nunc</th></tr></thead><tbody><tr><td>Aenean </td><td>14134</td><td>dfdsfd</td></tr><tr><td>lobortis </td><td>3434</td><td>fdsf dsf </td></tr><tr><td>volutpat </td><td>234234</td><td>sd fsd</td></tr><tr><td>vitae </td><td>2423</td><td>s fsdf</td></tr><tr><td>elementumus</td><td>23423</td><td>f sdf</td></tr></tbody><tfoot><tr><td colspan="1000">Aenean sodales sapien</td></tr></tfoot></table>';
|
|
345
348
|
expect((0, bodyXMLToTree_1.default)(xml, tagMappings_1.default, mockContext)).toMatchInlineSnapshot(`
|
|
346
|
-
|
|
347
|
-
"children":
|
|
348
|
-
|
|
349
|
-
"children":
|
|
350
|
-
|
|
351
|
-
"children":
|
|
352
|
-
|
|
349
|
+
{
|
|
350
|
+
"children": [
|
|
351
|
+
{
|
|
352
|
+
"children": [
|
|
353
|
+
{
|
|
354
|
+
"children": [
|
|
355
|
+
{
|
|
353
356
|
"type": "text",
|
|
354
357
|
"value": "Nulla iaculis tempus augue",
|
|
355
358
|
},
|
|
356
359
|
],
|
|
357
360
|
"type": "table-caption",
|
|
358
361
|
},
|
|
359
|
-
|
|
360
|
-
"children":
|
|
361
|
-
|
|
362
|
-
"children":
|
|
363
|
-
|
|
364
|
-
"children":
|
|
365
|
-
|
|
362
|
+
{
|
|
363
|
+
"children": [
|
|
364
|
+
{
|
|
365
|
+
"children": [
|
|
366
|
+
{
|
|
367
|
+
"children": [
|
|
368
|
+
{
|
|
366
369
|
"type": "text",
|
|
367
370
|
"value": "libero mollis",
|
|
368
371
|
},
|
|
@@ -370,9 +373,9 @@ describe('bodyXMLToTree', () => {
|
|
|
370
373
|
"heading": true,
|
|
371
374
|
"type": "table-cell",
|
|
372
375
|
},
|
|
373
|
-
|
|
374
|
-
"children":
|
|
375
|
-
|
|
376
|
+
{
|
|
377
|
+
"children": [
|
|
378
|
+
{
|
|
376
379
|
"type": "text",
|
|
377
380
|
"value": "pretium nunc",
|
|
378
381
|
},
|
|
@@ -380,9 +383,9 @@ describe('bodyXMLToTree', () => {
|
|
|
380
383
|
"heading": true,
|
|
381
384
|
"type": "table-cell",
|
|
382
385
|
},
|
|
383
|
-
|
|
384
|
-
"children":
|
|
385
|
-
|
|
386
|
+
{
|
|
387
|
+
"children": [
|
|
388
|
+
{
|
|
386
389
|
"type": "text",
|
|
387
390
|
"value": "euismod nunc",
|
|
388
391
|
},
|
|
@@ -393,29 +396,29 @@ describe('bodyXMLToTree', () => {
|
|
|
393
396
|
],
|
|
394
397
|
"type": "table-row",
|
|
395
398
|
},
|
|
396
|
-
|
|
397
|
-
"children":
|
|
398
|
-
|
|
399
|
-
"children":
|
|
400
|
-
|
|
399
|
+
{
|
|
400
|
+
"children": [
|
|
401
|
+
{
|
|
402
|
+
"children": [
|
|
403
|
+
{
|
|
401
404
|
"type": "text",
|
|
402
405
|
"value": "Aenean ",
|
|
403
406
|
},
|
|
404
407
|
],
|
|
405
408
|
"type": "table-cell",
|
|
406
409
|
},
|
|
407
|
-
|
|
408
|
-
"children":
|
|
409
|
-
|
|
410
|
+
{
|
|
411
|
+
"children": [
|
|
412
|
+
{
|
|
410
413
|
"type": "text",
|
|
411
414
|
"value": "14134",
|
|
412
415
|
},
|
|
413
416
|
],
|
|
414
417
|
"type": "table-cell",
|
|
415
418
|
},
|
|
416
|
-
|
|
417
|
-
"children":
|
|
418
|
-
|
|
419
|
+
{
|
|
420
|
+
"children": [
|
|
421
|
+
{
|
|
419
422
|
"type": "text",
|
|
420
423
|
"value": "dfdsfd",
|
|
421
424
|
},
|
|
@@ -425,29 +428,29 @@ describe('bodyXMLToTree', () => {
|
|
|
425
428
|
],
|
|
426
429
|
"type": "table-row",
|
|
427
430
|
},
|
|
428
|
-
|
|
429
|
-
"children":
|
|
430
|
-
|
|
431
|
-
"children":
|
|
432
|
-
|
|
431
|
+
{
|
|
432
|
+
"children": [
|
|
433
|
+
{
|
|
434
|
+
"children": [
|
|
435
|
+
{
|
|
433
436
|
"type": "text",
|
|
434
437
|
"value": "lobortis ",
|
|
435
438
|
},
|
|
436
439
|
],
|
|
437
440
|
"type": "table-cell",
|
|
438
441
|
},
|
|
439
|
-
|
|
440
|
-
"children":
|
|
441
|
-
|
|
442
|
+
{
|
|
443
|
+
"children": [
|
|
444
|
+
{
|
|
442
445
|
"type": "text",
|
|
443
446
|
"value": "3434",
|
|
444
447
|
},
|
|
445
448
|
],
|
|
446
449
|
"type": "table-cell",
|
|
447
450
|
},
|
|
448
|
-
|
|
449
|
-
"children":
|
|
450
|
-
|
|
451
|
+
{
|
|
452
|
+
"children": [
|
|
453
|
+
{
|
|
451
454
|
"type": "text",
|
|
452
455
|
"value": "fdsf dsf ",
|
|
453
456
|
},
|
|
@@ -457,29 +460,29 @@ describe('bodyXMLToTree', () => {
|
|
|
457
460
|
],
|
|
458
461
|
"type": "table-row",
|
|
459
462
|
},
|
|
460
|
-
|
|
461
|
-
"children":
|
|
462
|
-
|
|
463
|
-
"children":
|
|
464
|
-
|
|
463
|
+
{
|
|
464
|
+
"children": [
|
|
465
|
+
{
|
|
466
|
+
"children": [
|
|
467
|
+
{
|
|
465
468
|
"type": "text",
|
|
466
469
|
"value": "volutpat ",
|
|
467
470
|
},
|
|
468
471
|
],
|
|
469
472
|
"type": "table-cell",
|
|
470
473
|
},
|
|
471
|
-
|
|
472
|
-
"children":
|
|
473
|
-
|
|
474
|
+
{
|
|
475
|
+
"children": [
|
|
476
|
+
{
|
|
474
477
|
"type": "text",
|
|
475
478
|
"value": "234234",
|
|
476
479
|
},
|
|
477
480
|
],
|
|
478
481
|
"type": "table-cell",
|
|
479
482
|
},
|
|
480
|
-
|
|
481
|
-
"children":
|
|
482
|
-
|
|
483
|
+
{
|
|
484
|
+
"children": [
|
|
485
|
+
{
|
|
483
486
|
"type": "text",
|
|
484
487
|
"value": "sd fsd",
|
|
485
488
|
},
|
|
@@ -489,29 +492,29 @@ describe('bodyXMLToTree', () => {
|
|
|
489
492
|
],
|
|
490
493
|
"type": "table-row",
|
|
491
494
|
},
|
|
492
|
-
|
|
493
|
-
"children":
|
|
494
|
-
|
|
495
|
-
"children":
|
|
496
|
-
|
|
495
|
+
{
|
|
496
|
+
"children": [
|
|
497
|
+
{
|
|
498
|
+
"children": [
|
|
499
|
+
{
|
|
497
500
|
"type": "text",
|
|
498
501
|
"value": "vitae ",
|
|
499
502
|
},
|
|
500
503
|
],
|
|
501
504
|
"type": "table-cell",
|
|
502
505
|
},
|
|
503
|
-
|
|
504
|
-
"children":
|
|
505
|
-
|
|
506
|
+
{
|
|
507
|
+
"children": [
|
|
508
|
+
{
|
|
506
509
|
"type": "text",
|
|
507
510
|
"value": "2423",
|
|
508
511
|
},
|
|
509
512
|
],
|
|
510
513
|
"type": "table-cell",
|
|
511
514
|
},
|
|
512
|
-
|
|
513
|
-
"children":
|
|
514
|
-
|
|
515
|
+
{
|
|
516
|
+
"children": [
|
|
517
|
+
{
|
|
515
518
|
"type": "text",
|
|
516
519
|
"value": "s fsdf",
|
|
517
520
|
},
|
|
@@ -521,29 +524,29 @@ describe('bodyXMLToTree', () => {
|
|
|
521
524
|
],
|
|
522
525
|
"type": "table-row",
|
|
523
526
|
},
|
|
524
|
-
|
|
525
|
-
"children":
|
|
526
|
-
|
|
527
|
-
"children":
|
|
528
|
-
|
|
527
|
+
{
|
|
528
|
+
"children": [
|
|
529
|
+
{
|
|
530
|
+
"children": [
|
|
531
|
+
{
|
|
529
532
|
"type": "text",
|
|
530
533
|
"value": "elementumus",
|
|
531
534
|
},
|
|
532
535
|
],
|
|
533
536
|
"type": "table-cell",
|
|
534
537
|
},
|
|
535
|
-
|
|
536
|
-
"children":
|
|
537
|
-
|
|
538
|
+
{
|
|
539
|
+
"children": [
|
|
540
|
+
{
|
|
538
541
|
"type": "text",
|
|
539
542
|
"value": "23423",
|
|
540
543
|
},
|
|
541
544
|
],
|
|
542
545
|
"type": "table-cell",
|
|
543
546
|
},
|
|
544
|
-
|
|
545
|
-
"children":
|
|
546
|
-
|
|
547
|
+
{
|
|
548
|
+
"children": [
|
|
549
|
+
{
|
|
547
550
|
"type": "text",
|
|
548
551
|
"value": "f sdf",
|
|
549
552
|
},
|
|
@@ -556,9 +559,9 @@ describe('bodyXMLToTree', () => {
|
|
|
556
559
|
],
|
|
557
560
|
"type": "table-body",
|
|
558
561
|
},
|
|
559
|
-
|
|
560
|
-
"children":
|
|
561
|
-
|
|
562
|
+
{
|
|
563
|
+
"children": [
|
|
564
|
+
{
|
|
562
565
|
"type": "text",
|
|
563
566
|
"value": "Aenean sodales sapien",
|
|
564
567
|
},
|
|
@@ -567,18 +570,18 @@ describe('bodyXMLToTree', () => {
|
|
|
567
570
|
},
|
|
568
571
|
],
|
|
569
572
|
"collapseAfterHowManyRows": undefined,
|
|
570
|
-
"columnSettings":
|
|
571
|
-
|
|
573
|
+
"columnSettings": [
|
|
574
|
+
{
|
|
572
575
|
"hideOnMobile": false,
|
|
573
576
|
"sortType": "text",
|
|
574
577
|
"sortable": false,
|
|
575
578
|
},
|
|
576
|
-
|
|
579
|
+
{
|
|
577
580
|
"hideOnMobile": false,
|
|
578
581
|
"sortType": "text",
|
|
579
582
|
"sortable": false,
|
|
580
583
|
},
|
|
581
|
-
|
|
584
|
+
{
|
|
582
585
|
"hideOnMobile": false,
|
|
583
586
|
"sortType": "text",
|
|
584
587
|
"sortable": false,
|
|
@@ -599,13 +602,13 @@ describe('bodyXMLToTree', () => {
|
|
|
599
602
|
it('parses single cell tables as infoboxes', () => {
|
|
600
603
|
const xml = '<table class="data-table" id="U1140244733565W0C"><caption>Emerging markets outlook for 2017</caption><tbody><tr><td colspan="2"><p>Brazil</p><p>Brazilian shares were the best-performing asset globally over the 12 months to the end of January, returning 121 per cent, according to data from BofA Merrill Lynch. Brazilian stocks did very well through January, but investors including Lazard and Eastspring have scaled back their exposure after strong growth last year.</p></td></tr></tbody></table>';
|
|
601
604
|
expect((0, bodyXMLToTree_1.default)(xml, tagMappings_1.default, mockContext)).toMatchInlineSnapshot(`
|
|
602
|
-
|
|
603
|
-
"children":
|
|
604
|
-
|
|
605
|
-
"children":
|
|
606
|
-
|
|
607
|
-
"children":
|
|
608
|
-
|
|
605
|
+
{
|
|
606
|
+
"children": [
|
|
607
|
+
{
|
|
608
|
+
"children": [
|
|
609
|
+
{
|
|
610
|
+
"children": [
|
|
611
|
+
{
|
|
609
612
|
"type": "text",
|
|
610
613
|
"value": "Emerging markets outlook for 2017",
|
|
611
614
|
},
|
|
@@ -613,20 +616,20 @@ describe('bodyXMLToTree', () => {
|
|
|
613
616
|
"level": "subheading",
|
|
614
617
|
"type": "heading",
|
|
615
618
|
},
|
|
616
|
-
|
|
617
|
-
"children":
|
|
618
|
-
|
|
619
|
-
"children":
|
|
620
|
-
|
|
619
|
+
{
|
|
620
|
+
"children": [
|
|
621
|
+
{
|
|
622
|
+
"children": [
|
|
623
|
+
{
|
|
621
624
|
"type": "text",
|
|
622
625
|
"value": "Brazil",
|
|
623
626
|
},
|
|
624
627
|
],
|
|
625
628
|
"type": "paragraph",
|
|
626
629
|
},
|
|
627
|
-
|
|
628
|
-
"children":
|
|
629
|
-
|
|
630
|
+
{
|
|
631
|
+
"children": [
|
|
632
|
+
{
|
|
630
633
|
"type": "text",
|
|
631
634
|
"value": "Brazilian shares were the best-performing asset globally over the 12 months to the end of January, returning 121 per cent, according to data from BofA Merrill Lynch. Brazilian stocks did very well through January, but investors including Lazard and Eastspring have scaled back their exposure after strong growth last year.",
|
|
632
635
|
},
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"bodyXMLToTree.test.js","sourceRoot":"","sources":["../../../src/resolvers/content-tree/bodyXMLToTree.test.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"bodyXMLToTree.test.js","sourceRoot":"","sources":["../../../src/resolvers/content-tree/bodyXMLToTree.test.ts"],"names":[],"mappings":"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"}
|