@financial-times/cp-content-pipeline-schema 3.23.1 → 3.25.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.
Files changed (29) hide show
  1. package/CHANGELOG.md +15 -0
  2. package/lib/model/Topper.d.ts +4 -0
  3. package/lib/model/Topper.js +33 -41
  4. package/lib/model/Topper.js.map +1 -1
  5. package/lib/model/Topper.test.js +129 -76
  6. package/lib/model/Topper.test.js.map +1 -1
  7. package/lib/model/strategies/topper/OpinionStrategy.d.ts +13 -0
  8. package/lib/model/strategies/topper/OpinionStrategy.js +42 -0
  9. package/lib/model/strategies/topper/OpinionStrategy.js.map +1 -0
  10. package/lib/model/strategies/topper/OpinionStrategy.test.d.ts +1 -0
  11. package/lib/model/strategies/topper/OpinionStrategy.test.js +213 -0
  12. package/lib/model/strategies/topper/OpinionStrategy.test.js.map +1 -0
  13. package/lib/model/strategies/topper/TopperStrategy.d.ts +7 -3
  14. package/lib/resolvers/content-tree/Workarounds.d.ts +2 -2
  15. package/lib/resolvers/content-tree/nodePredicates.d.ts +3 -2
  16. package/lib/resolvers/content-tree/nodePredicates.js +31 -5
  17. package/lib/resolvers/content-tree/nodePredicates.js.map +1 -1
  18. package/lib/resolvers/content-tree/tagMappings.js +52 -9
  19. package/lib/resolvers/content-tree/tagMappings.js.map +1 -1
  20. package/package.json +8 -7
  21. package/src/model/Topper.test.ts +177 -97
  22. package/src/model/Topper.ts +33 -45
  23. package/src/model/strategies/topper/OpinionStrategy.test.ts +248 -0
  24. package/src/model/strategies/topper/OpinionStrategy.ts +47 -0
  25. package/src/model/strategies/topper/TopperStrategy.ts +12 -3
  26. package/src/resolvers/content-tree/Workarounds.ts +14 -0
  27. package/src/resolvers/content-tree/nodePredicates.ts +44 -6
  28. package/src/resolvers/content-tree/tagMappings.ts +57 -9
  29. package/tsconfig.tsbuildinfo +1 -1
package/CHANGELOG.md CHANGED
@@ -1,5 +1,20 @@
1
1
  # Changelog
2
2
 
3
+ ## [3.25.0](https://github.com/Financial-Times/cp-content-pipeline/compare/cp-content-pipeline-schema-v3.24.0...cp-content-pipeline-schema-v3.25.0) (2026-01-21)
4
+
5
+
6
+ ### Features
7
+
8
+ * ci-3315 opinion topper strategy ([95ed4f0](https://github.com/Financial-Times/cp-content-pipeline/commit/95ed4f03914309b317069ce51fcd629c225bebc6))
9
+ * log a warning when a raw <img> tag is found in the bodyXML ([1ba58ba](https://github.com/Financial-Times/cp-content-pipeline/commit/1ba58ba0dc67ee2041d25fa052e57899e5fd3088))
10
+
11
+ ## [3.24.0](https://github.com/Financial-Times/cp-content-pipeline/compare/cp-content-pipeline-schema-v3.23.1...cp-content-pipeline-schema-v3.24.0) (2026-01-12)
12
+
13
+
14
+ ### Features
15
+
16
+ * info-box and info-pair ([80224eb](https://github.com/Financial-Times/cp-content-pipeline/commit/80224eb62429e645c038780c02617e4a602b5031))
17
+
3
18
  ## [3.23.1](https://github.com/Financial-Times/cp-content-pipeline/compare/cp-content-pipeline-schema-v3.23.0...cp-content-pipeline-schema-v3.23.1) (2026-01-09)
4
19
 
5
20
 
@@ -25,6 +25,10 @@ export declare class Topper {
25
25
  backgroundColour(): TopperBackgroundColourValues;
26
26
  backgroundBox(): boolean | null;
27
27
  textShadow(): boolean | null;
28
+ /**
29
+ * the strategy should return undefined if the override is only sometimes relevant and we want a default when it isn't (e.g. opinion)
30
+ * to have no display concept, the strategy should return null
31
+ */
28
32
  displayConcept(): import("./Concept").Concept | null;
29
33
  followButtonVariant(): FollowButtonVariant;
30
34
  columnist(): import("./Concept").Concept | null;
@@ -10,10 +10,10 @@ const scalars_1 = require("../resolvers/scalars");
10
10
  const RichText_1 = require("./RichText");
11
11
  const imageService_1 = __importDefault(require("../helpers/imageService"));
12
12
  const LeadFlourish_1 = require("./LeadFlourish");
13
- const Concept_1 = require("./Concept");
14
13
  const errors_1 = require("@dotcom-reliability-kit/errors");
15
14
  const isError_1 = __importDefault(require("../helpers/isError"));
16
15
  const PodcastStrategy_1 = require("./strategies/topper/PodcastStrategy");
16
+ const OpinionStrategy_1 = require("./strategies/topper/OpinionStrategy");
17
17
  function isDarkBackground(backgroundColour) {
18
18
  const darkColours = [
19
19
  'black',
@@ -41,10 +41,13 @@ class Topper {
41
41
  this.#systemCode = context.systemCode;
42
42
  this.#strategy = this.createStrategy() ?? {};
43
43
  }
44
+ // TODO: type might not be the right thing to call
44
45
  createStrategy() {
45
46
  switch (this.type()) {
46
47
  case 'PodcastTopper':
47
48
  return new PodcastStrategy_1.PodcastTopperStrategy(this.capiResponse);
49
+ case 'OpinionTopper':
50
+ return new OpinionStrategy_1.OpinionTopperStrategy(this.capiResponse);
48
51
  default:
49
52
  return null;
50
53
  }
@@ -154,9 +157,6 @@ class Topper {
154
157
  if (this.capiResponse.isCentralBanking()) {
155
158
  return 'slate';
156
159
  }
157
- if (type === 'OpinionTopper') {
158
- return this.capiResponse.isContainedInPackage() ? 'wheat' : 'sky';
159
- }
160
160
  if (this.capiResponse.isAlphaville()) {
161
161
  return 'matisse';
162
162
  }
@@ -189,40 +189,33 @@ class Topper {
189
189
  textShadow() {
190
190
  return this.capiResponse.topper()?.textShadow ?? null;
191
191
  }
192
+ /**
193
+ * the strategy should return undefined if the override is only sometimes relevant and we want a default when it isn't (e.g. opinion)
194
+ * to have no display concept, the strategy should return null
195
+ */
192
196
  displayConcept() {
193
197
  const strategy = this.strategy.displayConcept?.();
194
198
  if (strategy !== undefined)
195
199
  return strategy;
200
+ // NB: when these move to strategies, they should return null for this feature
196
201
  if (this.capiResponse.type() === 'ContentPackage' ||
197
202
  this.capiResponse.isCentralBanking()) {
198
203
  return null;
199
204
  }
200
- const brandConcept = this.brandConcept();
201
205
  const displayConcept = this.capiResponse.getDisplayConcept();
206
+ if (displayConcept) {
207
+ return displayConcept;
208
+ }
202
209
  const aboutAnnotation = this.capiResponse
203
210
  .annotations()
204
211
  ?.find((annotation) => annotation.predicate() ===
205
212
  'http://www.ft.com/ontology/annotation/about');
206
- if (this.type() === 'OpinionTopper' && brandConcept) {
207
- return brandConcept;
208
- }
209
- if (displayConcept) {
210
- return displayConcept;
211
- }
212
213
  return aboutAnnotation ?? null;
213
214
  }
214
215
  followButtonVariant() {
215
216
  const strategy = this.strategy.followButtonVariant?.();
216
217
  if (strategy !== undefined)
217
218
  return strategy;
218
- if (this.type() === 'OpinionTopper') {
219
- if (this.backgroundColour() === 'sky') {
220
- return 'opinion';
221
- }
222
- else {
223
- return 'standard';
224
- }
225
- }
226
219
  if (this.capiResponse.isAlphaville()) {
227
220
  return 'alphaville';
228
221
  }
@@ -240,11 +233,10 @@ class Topper {
240
233
  return authors?.[0] ?? null;
241
234
  }
242
235
  columnists() {
243
- const authors = this.capiResponse.annotations({
244
- byPredicate: Concept_1.predicates.hasAuthor,
245
- });
246
- const isOpinionOrColumn = this.type() === 'OpinionTopper' || this.capiResponse.isColumn();
247
- return isOpinionOrColumn && authors.length > 0 ? authors : null;
236
+ const strategy = this.strategy.columnists?.();
237
+ if (strategy !== undefined)
238
+ return strategy;
239
+ return null;
248
240
  }
249
241
  brandConcept() {
250
242
  const strategy = this.strategy.brandConcept?.();
@@ -264,6 +256,7 @@ class Topper {
264
256
  design() {
265
257
  return this.capiResponse.design();
266
258
  }
259
+ // is this actually in use?
267
260
  imageService(args) {
268
261
  if (args.url)
269
262
  return (0, imageService_1.default)({
@@ -275,24 +268,23 @@ class Topper {
275
268
  return null;
276
269
  }
277
270
  async headshot(args) {
278
- if (this.capiResponse.isOpinion()) {
279
- try {
280
- const primaryAuthor = await this.capiResponse.primaryAuthor();
281
- return primaryAuthor?.headshot(args) ?? null;
282
- }
283
- catch (error) {
284
- if ((0, isError_1.default)(error)) {
285
- this.context.logger.warn({
286
- event: 'RECOVERABLE_ERROR',
287
- error: new errors_1.OperationalError({
288
- message: 'Error fetching CAPI Person for headshot URL for topper',
289
- code: 'HEADSHOT_PERSON_FETCH_ERROR',
290
- cause: error,
291
- }),
292
- });
293
- }
294
- return null;
271
+ try {
272
+ const strategy = this.strategy.headshot?.(args);
273
+ if (strategy !== undefined)
274
+ return strategy;
275
+ }
276
+ catch (error) {
277
+ if ((0, isError_1.default)(error)) {
278
+ this.context.logger.warn({
279
+ event: 'RECOVERABLE_ERROR',
280
+ error: new errors_1.OperationalError({
281
+ message: 'Error fetching CAPI Person for headshot URL for topper',
282
+ code: 'HEADSHOT_PERSON_FETCH_ERROR',
283
+ cause: error,
284
+ }),
285
+ });
295
286
  }
287
+ return null;
296
288
  }
297
289
  return null;
298
290
  }
@@ -1 +1 @@
1
- {"version":3,"file":"Topper.js","sourceRoot":"","sources":["../../src/model/Topper.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Topper.js","sourceRoot":"","sources":["../../src/model/Topper.ts"],"names":[],"mappings":"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"}
@@ -3,15 +3,13 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
3
3
  return (mod && mod.__esModule) ? mod : { "default": mod };
4
4
  };
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
+ /* eslint-disable @typescript-eslint/no-explicit-any */
6
7
  const Topper_1 = require("./Topper");
7
- const Person_1 = require("./Person");
8
8
  const capiObject_1 = require("../fixtures/capiObject");
9
9
  const Content_1 = require("./Content");
10
10
  const Concept_1 = require("./Concept");
11
11
  const clone_deep_1 = __importDefault(require("clone-deep"));
12
- const n_concept_ids_1 = __importDefault(require("@financial-times/n-concept-ids"));
13
12
  const imageService_1 = __importDefault(require("../helpers/imageService"));
14
- const capiPerson_1 = require("../fixtures/capiPerson");
15
13
  const context = {};
16
14
  context.systemCode = 'cp-content-pipeline';
17
15
  describe('produces the correct types', () => {
@@ -86,29 +84,6 @@ describe('produces the correct types', () => {
86
84
  const actual = topper.type();
87
85
  expect(actual).toEqual(desired);
88
86
  });
89
- it('opinion topper, is normal headline, sky background', () => {
90
- const clonedBase = (0, clone_deep_1.default)(capiObject_1.baseCapiObject);
91
- clonedBase.annotations.push({
92
- id: n_concept_ids_1.default.genre.opinion,
93
- apiUrl: '',
94
- directType: '',
95
- predicate: '',
96
- prefLabel: '',
97
- type: '',
98
- types: [],
99
- });
100
- const capiResponse = new Content_1.Content(clonedBase, context);
101
- const topper = new Topper_1.Topper(capiResponse, context);
102
- const desired = 'OpinionTopper';
103
- const actual = topper.type();
104
- expect(actual).toEqual(desired);
105
- const desiredIsLarge = false;
106
- const actualIsLarge = topper.isLargeHeadline();
107
- expect(desiredIsLarge).toEqual(actualIsLarge);
108
- const desiredColour = 'sky';
109
- const actualColour = topper.backgroundColour();
110
- expect(desiredColour).toEqual(actualColour);
111
- });
112
87
  it('branded topper, is normal headline, wheat background', () => {
113
88
  const clonedBase = (0, clone_deep_1.default)(capiObject_1.baseCapiObject);
114
89
  clonedBase.annotations.push({
@@ -238,6 +213,21 @@ describe('produces the correct layout', () => {
238
213
  });
239
214
  });
240
215
  describe('produces the correct background colour', () => {
216
+ afterEach(() => {
217
+ jest.restoreAllMocks();
218
+ });
219
+ it('uses strategy value when strategy returns a value', () => {
220
+ const mockStrategy = {
221
+ backgroundColour: jest.fn().mockReturnValue('crimson'),
222
+ };
223
+ jest
224
+ .spyOn(Topper_1.Topper.prototype, 'createStrategy')
225
+ .mockReturnValue(mockStrategy);
226
+ const clonedBase = (0, clone_deep_1.default)(capiObject_1.baseCapiObject);
227
+ const capiResponse = new Content_1.Content(clonedBase, context);
228
+ const topper = new Topper_1.Topper(capiResponse, context);
229
+ expect(topper.backgroundColour()).toBe('crimson');
230
+ });
241
231
  it.each([
242
232
  { capi: 'paper', expected: 'paper' },
243
233
  { capi: 'wheat', expected: 'wheat' },
@@ -251,7 +241,7 @@ describe('produces the correct background colour', () => {
251
241
  { capi: 'auto', expected: 'wheat' },
252
242
  { capi: 'pink', expected: 'wheat' },
253
243
  { capi: 'blue', expected: 'oxford' },
254
- ])('$capi topper returns $expected backgroundColor', ({ capi, expected }) => {
244
+ ])('$capi topper returns $expected backgroundColor as a default', ({ capi, expected }) => {
255
245
  const splitTopper = {
256
246
  headline: '',
257
247
  standfirst: '',
@@ -310,20 +300,9 @@ describe('produces correct images', () => {
310
300
  });
311
301
  });
312
302
  describe('produces the correct metadata tags', () => {
313
- const opinionGenre = {
314
- apiUrl: 'http://api.ft.com/things/6da31a37-691f-4908-896f-2829ebe2309e',
315
- directType: 'http://www.ft.com/ontology/Genre',
316
- id: 'http://api.ft.com/things/6da31a37-691f-4908-896f-2829ebe2309e',
317
- predicate: 'http://www.ft.com/ontology/classification/isClassifiedBy',
318
- prefLabel: 'Opinion',
319
- type: 'GENRE',
320
- types: [
321
- 'http://www.ft.com/ontology/core/Thing',
322
- 'http://www.ft.com/ontology/concept/Concept',
323
- 'http://www.ft.com/ontology/classification/Classification',
324
- 'http://www.ft.com/ontology/Genre',
325
- ],
326
- };
303
+ afterEach(() => {
304
+ jest.restoreAllMocks();
305
+ });
327
306
  const lexBrand = {
328
307
  apiUrl: 'http://api.ft.com/brands/2d3e16e0-61cb-4322-8aff-3b01c59f4daa',
329
308
  directType: 'http://www.ft.com/ontology/product/Brand',
@@ -338,6 +317,20 @@ describe('produces the correct metadata tags', () => {
338
317
  'http://www.ft.com/ontology/product/Brand',
339
318
  ],
340
319
  };
320
+ it('uses strategy value when strategy returns a value', () => {
321
+ const mockStrategy = {
322
+ displayConcept: jest
323
+ .fn()
324
+ .mockReturnValue({ prefLabel: () => 'Test Concept' }),
325
+ };
326
+ jest
327
+ .spyOn(Topper_1.Topper.prototype, 'createStrategy')
328
+ .mockReturnValue(mockStrategy);
329
+ const clonedBase = (0, clone_deep_1.default)(capiObject_1.baseCapiObject);
330
+ const capiResponse = new Content_1.Content(clonedBase, context);
331
+ const topper = new Topper_1.Topper(capiResponse, context);
332
+ expect(topper.displayConcept()?.prefLabel()).toBe('Test Concept');
333
+ });
341
334
  it('uses the annotation with the predicate hasDisplayTag for the displayConcept', () => {
342
335
  const clonedBase = (0, clone_deep_1.default)(capiObject_1.baseCapiObject);
343
336
  const capiResponse = new Content_1.Content(clonedBase, context);
@@ -347,31 +340,41 @@ describe('produces the correct metadata tags', () => {
347
340
  const brandConcept = topper.brandConcept();
348
341
  expect(brandConcept).toBeNull();
349
342
  });
350
- it('for opinion articles with a brand, shows the brand instead of displayTag', () => {
351
- const clonedBase = (0, clone_deep_1.default)(capiObject_1.baseCapiObject);
352
- const lexArticle = {
353
- ...clonedBase,
354
- annotations: [...clonedBase.annotations, opinionGenre, lexBrand],
343
+ it('falls back to default when strategy exists but returns undefined', () => {
344
+ const mockStrategy = {
345
+ displayConcept: jest.fn().mockReturnValue(undefined),
355
346
  };
356
- const capiResponse = new Content_1.Content(lexArticle, context);
347
+ jest
348
+ .spyOn(Topper_1.Topper.prototype, 'createStrategy')
349
+ .mockReturnValue(mockStrategy);
350
+ const clonedBase = (0, clone_deep_1.default)(capiObject_1.baseCapiObject);
351
+ const capiResponse = new Content_1.Content(clonedBase, context);
357
352
  const topper = new Topper_1.Topper(capiResponse, context);
358
- const displayConcept = topper.displayConcept();
359
- expect(displayConcept?.prefLabel()).toEqual('Lex');
360
- const brandConcept = topper.brandConcept();
361
- expect(brandConcept?.prefLabel()).toEqual('Lex');
353
+ expect(topper.displayConcept()?.prefLabel()).toBe('UK politics & policy');
362
354
  });
363
- it('for opinion articles without a brand, shows the displayTag only', () => {
355
+ it('uses the about annotation when there is no display tag', () => {
364
356
  const clonedBase = (0, clone_deep_1.default)(capiObject_1.baseCapiObject);
365
- const opinionArticle = {
366
- ...clonedBase,
367
- annotations: [...clonedBase.annotations, opinionGenre],
368
- };
369
- const capiResponse = new Content_1.Content(opinionArticle, context);
357
+ clonedBase.annotations = clonedBase.annotations.filter((annotation) => {
358
+ return annotation.predicate !== 'http://www.ft.com/ontology/hasDisplayTag';
359
+ });
360
+ const capiResponse = new Content_1.Content(clonedBase, context);
370
361
  const topper = new Topper_1.Topper(capiResponse, context);
371
362
  const displayConcept = topper.displayConcept();
372
- expect(displayConcept?.prefLabel()).toEqual('UK politics & policy');
363
+ expect(displayConcept?.prefLabel()).toEqual('UK financial crisis');
373
364
  const brandConcept = topper.brandConcept();
374
- expect(brandConcept?.prefLabel()).toBeUndefined();
365
+ expect(brandConcept).toBeNull();
366
+ });
367
+ it('sets display concept to null if there the strategy returns null', () => {
368
+ const mockStrategy = {
369
+ displayConcept: jest.fn().mockReturnValue(null),
370
+ };
371
+ jest
372
+ .spyOn(Topper_1.Topper.prototype, 'createStrategy')
373
+ .mockReturnValue(mockStrategy);
374
+ const clonedBase = (0, clone_deep_1.default)(capiObject_1.baseCapiObject);
375
+ const capiResponse = new Content_1.Content(clonedBase, context);
376
+ const topper = new Topper_1.Topper(capiResponse, context);
377
+ expect(topper.displayConcept()).toBeNull();
375
378
  });
376
379
  it('for regular branded articles, show both displayConcept and brandConcept', () => {
377
380
  const clonedBase = (0, clone_deep_1.default)(capiObject_1.baseCapiObject);
@@ -387,29 +390,79 @@ describe('produces the correct metadata tags', () => {
387
390
  expect(brandConcept?.prefLabel()).toEqual('Lex');
388
391
  });
389
392
  });
390
- describe('headshot method', () => {
391
- let topper;
392
- let capiResponse;
393
- beforeEach(() => {
393
+ describe('produces the correct followButtonVariant', () => {
394
+ afterEach(() => {
395
+ jest.restoreAllMocks();
396
+ });
397
+ it('uses strategy value when strategy returns a value', () => {
398
+ const mockStrategy = {
399
+ followButtonVariant: jest.fn().mockReturnValue('monochrome'),
400
+ };
401
+ jest
402
+ .spyOn(Topper_1.Topper.prototype, 'createStrategy')
403
+ .mockReturnValue(mockStrategy);
404
+ const clonedBase = (0, clone_deep_1.default)(capiObject_1.baseCapiObject);
405
+ const capiResponse = new Content_1.Content(clonedBase, context);
406
+ const topper = new Topper_1.Topper(capiResponse, context);
407
+ expect(topper.followButtonVariant()).toBe('monochrome');
408
+ });
409
+ it('defaults to standard when there is no returned value from strategy', () => {
410
+ const mockStrategy = {
411
+ followButtonVariant: jest.fn().mockReturnValue(undefined),
412
+ };
413
+ jest
414
+ .spyOn(Topper_1.Topper.prototype, 'createStrategy')
415
+ .mockReturnValue(mockStrategy);
394
416
  const clonedBase = (0, clone_deep_1.default)(capiObject_1.baseCapiObject);
395
- capiResponse = new Content_1.Content(clonedBase, context);
396
- topper = new Topper_1.Topper(capiResponse, context);
417
+ const capiResponse = new Content_1.Content(clonedBase, context);
418
+ const topper = new Topper_1.Topper(capiResponse, context);
419
+ expect(topper.followButtonVariant()).toBe('standard');
397
420
  });
421
+ });
422
+ describe('can provide a list of columnists', () => {
398
423
  afterEach(() => {
399
- jest.clearAllMocks();
424
+ jest.restoreAllMocks();
400
425
  });
401
- it('returns null if the content is not opinion genre', async () => {
402
- jest.spyOn(capiResponse, 'isPodcast').mockReturnValue(false);
403
- jest.spyOn(capiResponse, 'isOpinion').mockReturnValue(false);
404
- await expect(topper.headshot({})).resolves.toBeNull();
426
+ it('uses strategy value when strategy returns a value', () => {
427
+ const mockStrategy = {
428
+ columnists: jest.fn().mockReturnValue([1, 2, 3]),
429
+ };
430
+ jest
431
+ .spyOn(Topper_1.Topper.prototype, 'createStrategy')
432
+ .mockReturnValue(mockStrategy);
433
+ const clonedBase = (0, clone_deep_1.default)(capiObject_1.baseCapiObject);
434
+ const capiResponse = new Content_1.Content(clonedBase, context);
435
+ const topper = new Topper_1.Topper(capiResponse, context);
436
+ expect(topper.columnists()).toEqual([1, 2, 3]);
437
+ });
438
+ it('defaults to null when there is no returned value from strategy', () => {
439
+ const clonedBase = (0, clone_deep_1.default)(capiObject_1.baseCapiObject);
440
+ const capiResponse = new Content_1.Content(clonedBase, context);
441
+ const topper = new Topper_1.Topper(capiResponse, context);
442
+ expect(topper.columnists()).toBeNull();
405
443
  });
406
- it('attempts to return the author headshot if the content is opinion genre', async () => {
407
- jest.spyOn(capiResponse, 'isPodcast').mockReturnValue(false);
408
- jest.spyOn(capiResponse, 'isOpinion').mockReturnValue(true);
444
+ });
445
+ describe('can provide a headshot', () => {
446
+ afterEach(() => {
447
+ jest.restoreAllMocks();
448
+ });
449
+ it('uses strategy value when strategy returns a value', async () => {
450
+ const mockStrategy = {
451
+ headshot: jest.fn().mockResolvedValue('https://ft.com/headshot.jpg'),
452
+ };
409
453
  jest
410
- .spyOn(capiResponse, 'primaryAuthor')
411
- .mockResolvedValue(new Person_1.Person(capiPerson_1.capiPerson, context));
412
- expect(await topper.headshot({})).toBe('https://images.ft.com/v3/image/raw/https%3A%2F%2Fd1e00ek4ebabms.cloudfront.net%2Fproduction%2Fuploaded-files%2Ffthead-v1_robert-shrimsley-cc467908-15d6-474d-94d8-171594ceabb9.png?source=cp-content-pipeline&fit=scale-down&quality=highest&width=150&dpr=1');
454
+ .spyOn(Topper_1.Topper.prototype, 'createStrategy')
455
+ .mockReturnValue(mockStrategy);
456
+ const clonedBase = (0, clone_deep_1.default)(capiObject_1.baseCapiObject);
457
+ const capiResponse = new Content_1.Content(clonedBase, context);
458
+ const topper = new Topper_1.Topper(capiResponse, context);
459
+ await expect(topper.headshot({})).resolves.toBe('https://ft.com/headshot.jpg');
460
+ });
461
+ it('defaults to null when there is no returned value from strategy', async () => {
462
+ const clonedBase = (0, clone_deep_1.default)(capiObject_1.baseCapiObject);
463
+ const capiResponse = new Content_1.Content(clonedBase, context);
464
+ const topper = new Topper_1.Topper(capiResponse, context);
465
+ await expect(topper.headshot({})).resolves.toBeNull();
413
466
  });
414
467
  });
415
468
  //# sourceMappingURL=Topper.test.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Topper.test.js","sourceRoot":"","sources":["../../src/model/Topper.test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Topper.test.js","sourceRoot":"","sources":["../../src/model/Topper.test.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,13 @@
1
+ import type { Content } from '../../Content';
2
+ import type { TopperStrategy, FollowButtonVariant, TopperBackgroundColourValues } from './TopperStrategy';
3
+ import type { TopperWithHeadshotHeadshotArgs } from '../../../generated';
4
+ import type { Concept } from '../../Concept';
5
+ export declare class OpinionTopperStrategy implements TopperStrategy {
6
+ private capiResponse;
7
+ constructor(capiResponse: Content);
8
+ backgroundColour(): TopperBackgroundColourValues;
9
+ displayConcept(): Concept | undefined;
10
+ followButtonVariant(): FollowButtonVariant;
11
+ columnists(): Concept[] | null;
12
+ headshot(args: TopperWithHeadshotHeadshotArgs): Promise<string | null>;
13
+ }
@@ -0,0 +1,42 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.OpinionTopperStrategy = void 0;
4
+ const Concept_1 = require("../../Concept");
5
+ class OpinionTopperStrategy {
6
+ capiResponse;
7
+ constructor(capiResponse) {
8
+ this.capiResponse = capiResponse;
9
+ }
10
+ backgroundColour() {
11
+ return this.capiResponse.isContainedInPackage() ? 'wheat' : 'sky';
12
+ }
13
+ // if there is no brand concept, will return undefined so that we can use defaults
14
+ displayConcept() {
15
+ const brandConcept = this.capiResponse.getBrandConcept();
16
+ if (brandConcept) {
17
+ return brandConcept;
18
+ }
19
+ }
20
+ followButtonVariant() {
21
+ if (this.backgroundColour() === 'sky') {
22
+ return 'opinion';
23
+ }
24
+ else {
25
+ return 'standard';
26
+ }
27
+ }
28
+ columnists() {
29
+ const authors = this.capiResponse.annotations({
30
+ byPredicate: Concept_1.predicates.hasAuthor,
31
+ });
32
+ return authors.length > 0 ? authors : null;
33
+ }
34
+ async headshot(args) {
35
+ if (this.columnists()?.length !== 1)
36
+ return null;
37
+ const primaryAuthor = await this.capiResponse.primaryAuthor();
38
+ return primaryAuthor?.headshot(args) ?? null;
39
+ }
40
+ }
41
+ exports.OpinionTopperStrategy = OpinionTopperStrategy;
42
+ //# sourceMappingURL=OpinionStrategy.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"OpinionStrategy.js","sourceRoot":"","sources":["../../../../src/model/strategies/topper/OpinionStrategy.ts"],"names":[],"mappings":";;;AAQA,2CAA0C;AAE1C,MAAa,qBAAqB;IACZ;IAApB,YAAoB,YAAqB;QAArB,iBAAY,GAAZ,YAAY,CAAS;IAAG,CAAC;IAE7C,gBAAgB;QACd,OAAO,IAAI,CAAC,YAAY,CAAC,oBAAoB,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,CAAA;IACnE,CAAC;IAED,kFAAkF;IAClF,cAAc;QACZ,MAAM,YAAY,GAAG,IAAI,CAAC,YAAY,CAAC,eAAe,EAAE,CAAA;QACxD,IAAI,YAAY,EAAE,CAAC;YACjB,OAAO,YAAY,CAAA;QACrB,CAAC;IACH,CAAC;IAED,mBAAmB;QACjB,IAAI,IAAI,CAAC,gBAAgB,EAAE,KAAK,KAAK,EAAE,CAAC;YACtC,OAAO,SAAS,CAAA;QAClB,CAAC;aAAM,CAAC;YACN,OAAO,UAAU,CAAA;QACnB,CAAC;IACH,CAAC;IAED,UAAU;QACR,MAAM,OAAO,GAAG,IAAI,CAAC,YAAY,CAAC,WAAW,CAAC;YAC5C,WAAW,EAAE,oBAAU,CAAC,SAAS;SAClC,CAAC,CAAA;QAEF,OAAO,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAA;IAC5C,CAAC;IAED,KAAK,CAAC,QAAQ,CAAC,IAAoC;QACjD,IAAI,IAAI,CAAC,UAAU,EAAE,EAAE,MAAM,KAAK,CAAC;YAAE,OAAO,IAAI,CAAA;QAChD,MAAM,aAAa,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC,aAAa,EAAE,CAAA;QAC7D,OAAO,aAAa,EAAE,QAAQ,CAAC,IAAI,CAAC,IAAI,IAAI,CAAA;IAC9C,CAAC;CACF;AApCD,sDAoCC"}