@comicrelief/component-library 8.74.1 → 8.75.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 (60) hide show
  1. package/README.md +12 -0
  2. package/dist/index.cjs.js +578 -572
  3. package/dist/index.es.js +5423 -5367
  4. package/dist/style.css +1 -1
  5. package/package.json +1 -1
  6. package/src/components/Atoms/AmbientVideo/AmbientVideo.js +4 -3
  7. package/src/components/Atoms/Button/Button.js +1 -1
  8. package/src/components/Atoms/Button/Button.test.js +1 -0
  9. package/src/components/Atoms/ButtonWithStates/ButtonWithStates.js +2 -2
  10. package/src/components/Atoms/Confetti/Confetti.js +1 -1
  11. package/src/components/Atoms/Icons/IconsExample.jsx +2 -1
  12. package/src/components/Atoms/Icons/Post.js +37 -0
  13. package/src/components/Atoms/Icons/index.js +1 -0
  14. package/src/components/Atoms/Icons/post.svg +3 -0
  15. package/src/components/Atoms/Pagination/Pagination.js +1 -0
  16. package/src/components/Atoms/Pagination/__snapshots__/Pagination.test.js.snap +110 -0
  17. package/src/components/Atoms/Picture/Picture.js +4 -0
  18. package/src/components/Atoms/Picture/Picture.test.js +4 -0
  19. package/src/components/Atoms/SocialIcons/SocialIcons.js +2 -2
  20. package/src/components/Atoms/SocialIcons/__snapshots__/SocialIcons.test.js.snap +15 -0
  21. package/src/components/Atoms/TextInputWithDropdown/TextInputWithDropdown.js +6 -1
  22. package/src/components/Atoms/TextInputWithDropdown/__snapshots__/TextInputWithDropdown.test.js.snap +12 -0
  23. package/src/components/Molecules/ArticleTeaser/ArticleTeaser.test.js +4 -0
  24. package/src/components/Molecules/Box/__snapshots__/Box.test.js.snap +2 -0
  25. package/src/components/Molecules/CTA/CTAMultiCard/CTAMultiCard.js +4 -2
  26. package/src/components/Molecules/CTA/CTAMultiCard/__snapshots__/CTAMultiCard.test.js.snap +40 -0
  27. package/src/components/Molecules/CTA/CTASingleCard/CTASingleCard.js +2 -1
  28. package/src/components/Molecules/CTA/CTASingleCard/__snapshots__/CTASingleCard.test.js.snap +6 -0
  29. package/src/components/Molecules/Card/Card.js +3 -1
  30. package/src/components/Molecules/Card/__snapshots__/Card.test.js.snap +8 -0
  31. package/src/components/Molecules/CardDs/__snapshots__/CardDs.test.js.snap +4 -0
  32. package/src/components/Molecules/Countdown/Countdown.js +5 -5
  33. package/src/components/Molecules/Descriptor/Descriptor.test.js +221 -221
  34. package/src/components/Molecules/DoubleCopy/DoubleCopy.js +3 -3
  35. package/src/components/Molecules/DoubleCopy/DoubleCopy.test.js +3 -0
  36. package/src/components/Molecules/EmailSignUp/EmailSignUp.js +8 -7
  37. package/src/components/Molecules/HeroBanner/__snapshots__/HeroBanner.test.js.snap +8 -0
  38. package/src/components/Molecules/PartnerLink/PartnerLink.test.js +2 -0
  39. package/src/components/Molecules/PictureOrVideo/__snapshots__/PictureOrVideo.test.js.snap +10 -0
  40. package/src/components/Molecules/Promo/__snapshots__/Promo.test.js.snap +4 -0
  41. package/src/components/Molecules/SchoolLookup/__snapshots__/SchoolLookup.test.js.snap +2 -0
  42. package/src/components/Molecules/SearchResult/__snapshots__/SearchResult.test.js.snap +8 -0
  43. package/src/components/Molecules/SingleMessage/__snapshots__/SingleMessage.test.js.snap +12 -0
  44. package/src/components/Molecules/SingleMessageDS/__snapshots__/SingleMessageDs.test.js.snap +2 -0
  45. package/src/components/Molecules/StatsSlice/StatsSlice.js +2 -1
  46. package/src/components/Molecules/StatsSlice/_StatNode.js +7 -6
  47. package/src/components/Molecules/StatsSlice/__snapshots__/StatsSlice.test.js.snap +28 -0
  48. package/src/components/Molecules/Typeahead/__snapshots__/Typeahead.test.js.snap +2 -0
  49. package/src/components/Organisms/DynamicGallery/DynamicGallery.js +4 -3
  50. package/src/components/Organisms/DynamicGallery/_DynamicGalleryColumn.js +4 -2
  51. package/src/components/Organisms/DynamicGallery/_Lightbox.js +11 -8
  52. package/src/components/Organisms/DynamicGallery/__snapshots__/DynamicGallery.test.js.snap +56 -10
  53. package/src/components/Organisms/EmailBanner/__snapshots__/EmailBanner.test.js.snap +8 -0
  54. package/src/components/Organisms/EmailSignUp/__snapshots__/EmailSignUp.test.js.snap +2 -0
  55. package/src/components/Organisms/Footer/__snapshots__/Footer.test.js.snap +5 -0
  56. package/src/components/Organisms/FooterNew/__snapshots__/FooterNew.test.js.snap +62 -22
  57. package/src/components/Organisms/Membership/Membership.test.js +2 -0
  58. package/src/docs/InstallationDoc.jsx +3 -0
  59. package/src/index.js +2 -0
  60. package/src/theme/shared/global.css +0 -1
@@ -105,6 +105,7 @@ const Picture = ({
105
105
  $nonObjFitImage={nonObjFitImage}
106
106
  $objFitState={objFitState}
107
107
  {...rest}
108
+ data-testid="PictureWrapper"
108
109
  >
109
110
  <Image
110
111
  key={image}
@@ -116,6 +117,7 @@ const Picture = ({
116
117
  className="lazyload"
117
118
  $objFitState={objFitState}
118
119
  onLoad={onLoad}
120
+ data-testid="Picture"
119
121
  />
120
122
  </Wrapper>
121
123
  );
@@ -130,6 +132,7 @@ const Picture = ({
130
132
  $nonObjFitImage={nonObjFitImage}
131
133
  $objFitState={objFitState}
132
134
  {...rest}
135
+ data-testid="PictureWrapper"
133
136
  >
134
137
  <Image
135
138
  alt={alt}
@@ -146,6 +149,7 @@ const Picture = ({
146
149
  $objFitState={objFitState}
147
150
  $smallBreakpointRowLayout={smallBreakpointRowLayout}
148
151
  $mediumBreakpointRowLayout={mediumBreakpointRowLayout}
152
+ data-testid="Picture"
149
153
  />
150
154
  </Wrapper>
151
155
  );
@@ -29,6 +29,7 @@ it('renders correctly', () => {
29
29
 
30
30
  <div
31
31
  className="c0 lazyload"
32
+ data-testid="PictureWrapper"
32
33
  >
33
34
  <img
34
35
  alt="Test images"
@@ -37,6 +38,7 @@ it('renders correctly', () => {
37
38
  data-sizes="auto"
38
39
  data-src="http://images.ctfassets.net/zsfivwzfgl3t/Yq59XdwwQgjNOxky93K1Q/17c2d80dce99067b0b3508f33075cbe3/funding_4-3_2x.jpg"
39
40
  data-srcset="//images.ctfassets.net/zsfivwzfgl3t/Yq59XdwwQgjNOxky93K1Q/17c2d80dce99067b0b3508f33075cbe3/funding_4-3_2x.jpg?w=200&h=150&q=50 200w,//images.ctfassets.net/zsfivwzfgl3t/Yq59XdwwQgjNOxky93K1Q/17c2d80dce99067b0b3508f33075cbe3/funding_4-3_2x.jpg?w=400&h=300&q=50 400w,//images.ctfassets.net/zsfivwzfgl3t/Yq59XdwwQgjNOxky93K1Q/17c2d80dce99067b0b3508f33075cbe3/funding_4-3_2x.jpg?w=800&h=600&q=50 800w,//images.ctfassets.net/zsfivwzfgl3t/Yq59XdwwQgjNOxky93K1Q/17c2d80dce99067b0b3508f33075cbe3/funding_4-3_2x.jpg?w=1200&h=900&q=50 1200w,//images.ctfassets.net/zsfivwzfgl3t/Yq59XdwwQgjNOxky93K1Q/17c2d80dce99067b0b3508f33075cbe3/funding_4-3_2x.jpg?w=1440&h=1080&q=50 1440w"
41
+ data-testid="Picture"
40
42
  src="http://images.ctfassets.net/zsfivwzfgl3t/Yq59XdwwQgjNOxky93K1Q/17c2d80dce99067b0b3508f33075cbe3/funding_4-3_2x.jpg"
41
43
  srcSet="data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7"
42
44
  />
@@ -73,6 +75,7 @@ it('renders correctly with custom props', () => {
73
75
 
74
76
  <div
75
77
  className="c0 lazyload"
78
+ data-testid="PictureWrapper"
76
79
  >
77
80
  <img
78
81
  alt="Test images"
@@ -81,6 +84,7 @@ it('renders correctly with custom props', () => {
81
84
  data-sizes="auto"
82
85
  data-src="http://images.ctfassets.net/zsfivwzfgl3t/Yq59XdwwQgjNOxky93K1Q/17c2d80dce99067b0b3508f33075cbe3/funding_4-3_2x.jpg"
83
86
  data-srcset="//images.ctfassets.net/zsfivwzfgl3t/Yq59XdwwQgjNOxky93K1Q/17c2d80dce99067b0b3508f33075cbe3/funding_4-3_2x.jpg?w=200&h=150&q=50 200w,//images.ctfassets.net/zsfivwzfgl3t/Yq59XdwwQgjNOxky93K1Q/17c2d80dce99067b0b3508f33075cbe3/funding_4-3_2x.jpg?w=400&h=300&q=50 400w,//images.ctfassets.net/zsfivwzfgl3t/Yq59XdwwQgjNOxky93K1Q/17c2d80dce99067b0b3508f33075cbe3/funding_4-3_2x.jpg?w=800&h=600&q=50 800w,//images.ctfassets.net/zsfivwzfgl3t/Yq59XdwwQgjNOxky93K1Q/17c2d80dce99067b0b3508f33075cbe3/funding_4-3_2x.jpg?w=1200&h=900&q=50 1200w,//images.ctfassets.net/zsfivwzfgl3t/Yq59XdwwQgjNOxky93K1Q/17c2d80dce99067b0b3508f33075cbe3/funding_4-3_2x.jpg?w=1440&h=1080&q=50 1440w"
87
+ data-testid="Picture"
84
88
  src="http://images.ctfassets.net/zsfivwzfgl3t/Yq59XdwwQgjNOxky93K1Q/17c2d80dce99067b0b3508f33075cbe3/funding_4-3_2x.jpg"
85
89
  srcSet="data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7"
86
90
  />
@@ -79,7 +79,7 @@ const SocialIcons = ({
79
79
  : ['facebook', 'instagram', 'twitter', 'youtube'];
80
80
 
81
81
  return (
82
- <StyledList $newStyle={newStyle}>
82
+ <StyledList $newStyle={newStyle} data-testid="SocialIconsList">
83
83
  {brandsToShow
84
84
  .filter(brand => shouldShowIcon(brand))
85
85
  .map(brand => {
@@ -92,7 +92,7 @@ const SocialIcons = ({
92
92
  return null;
93
93
  }
94
94
  return (
95
- <StyledItem key={brand} $newStyle={newStyle}>
95
+ <StyledItem key={brand} $newStyle={newStyle} data-testid={`SocialIcon-${brand}`}>
96
96
  <StyledIcon
97
97
  target={target}
98
98
  icon={icon}
@@ -55,9 +55,11 @@ exports[`renders correctly with Comic Relief links 1`] = `
55
55
 
56
56
  <ul
57
57
  className="c0"
58
+ data-testid="SocialIconsList"
58
59
  >
59
60
  <li
60
61
  className="c1"
62
+ data-testid="SocialIcon-facebook"
61
63
  >
62
64
  <a
63
65
  className="c2 c3"
@@ -76,6 +78,7 @@ exports[`renders correctly with Comic Relief links 1`] = `
76
78
  </li>
77
79
  <li
78
80
  className="c1"
81
+ data-testid="SocialIcon-instagram"
79
82
  >
80
83
  <a
81
84
  className="c2 c3"
@@ -94,6 +97,7 @@ exports[`renders correctly with Comic Relief links 1`] = `
94
97
  </li>
95
98
  <li
96
99
  className="c1"
100
+ data-testid="SocialIcon-twitter"
97
101
  >
98
102
  <a
99
103
  className="c2 c3"
@@ -112,6 +116,7 @@ exports[`renders correctly with Comic Relief links 1`] = `
112
116
  </li>
113
117
  <li
114
118
  className="c1"
119
+ data-testid="SocialIcon-youtube"
115
120
  >
116
121
  <a
117
122
  className="c2 c3"
@@ -186,9 +191,11 @@ exports[`renders correctly with Red Nose Day links and self target 1`] = `
186
191
 
187
192
  <ul
188
193
  className="c0"
194
+ data-testid="SocialIconsList"
189
195
  >
190
196
  <li
191
197
  className="c1"
198
+ data-testid="SocialIcon-facebook"
192
199
  >
193
200
  <a
194
201
  className="c2 c3"
@@ -207,6 +214,7 @@ exports[`renders correctly with Red Nose Day links and self target 1`] = `
207
214
  </li>
208
215
  <li
209
216
  className="c1"
217
+ data-testid="SocialIcon-instagram"
210
218
  >
211
219
  <a
212
220
  className="c2 c3"
@@ -225,6 +233,7 @@ exports[`renders correctly with Red Nose Day links and self target 1`] = `
225
233
  </li>
226
234
  <li
227
235
  className="c1"
236
+ data-testid="SocialIcon-twitter"
228
237
  >
229
238
  <a
230
239
  className="c2 c3"
@@ -243,6 +252,7 @@ exports[`renders correctly with Red Nose Day links and self target 1`] = `
243
252
  </li>
244
253
  <li
245
254
  className="c1"
255
+ data-testid="SocialIcon-youtube"
246
256
  >
247
257
  <a
248
258
  className="c2 c3"
@@ -317,9 +327,11 @@ exports[`renders correctly with Sport Relief links 1`] = `
317
327
 
318
328
  <ul
319
329
  className="c0"
330
+ data-testid="SocialIconsList"
320
331
  >
321
332
  <li
322
333
  className="c1"
334
+ data-testid="SocialIcon-facebook"
323
335
  >
324
336
  <a
325
337
  className="c2 c3"
@@ -338,6 +350,7 @@ exports[`renders correctly with Sport Relief links 1`] = `
338
350
  </li>
339
351
  <li
340
352
  className="c1"
353
+ data-testid="SocialIcon-instagram"
341
354
  >
342
355
  <a
343
356
  className="c2 c3"
@@ -356,6 +369,7 @@ exports[`renders correctly with Sport Relief links 1`] = `
356
369
  </li>
357
370
  <li
358
371
  className="c1"
372
+ data-testid="SocialIcon-twitter"
359
373
  >
360
374
  <a
361
375
  className="c2 c3"
@@ -374,6 +388,7 @@ exports[`renders correctly with Sport Relief links 1`] = `
374
388
  </li>
375
389
  <li
376
390
  className="c1"
391
+ data-testid="SocialIcon-youtube"
377
392
  >
378
393
  <a
379
394
  className="c2 c3"
@@ -125,11 +125,13 @@ const TextInputWithDropdown = React.forwardRef(
125
125
  className={`TextInputWithDropdown ${className}`.trim()}
126
126
  onKeyDown={navigateOptions}
127
127
  ref={containerRef}
128
+ data-testid="TextInputWithDropdownContainer"
128
129
  >
129
130
  <Input
130
131
  {...inputProps}
131
132
  className="TextInputWithDropdown__input"
132
133
  ref={forwardedRef}
134
+ data-testid="TextInputWithDropdownInput"
133
135
  />
134
136
  {options.length > 0 && !forceClosed && (
135
137
  <Options
@@ -167,7 +169,7 @@ const Options = React.forwardRef(({
167
169
  };
168
170
 
169
171
  return (
170
- <Dropdown {...rest} $hideBorder={hideBorder}>
172
+ <Dropdown {...rest} $hideBorder={hideBorder} data-testid="TextInputWithDropdownDropdown">
171
173
  <DropdownList
172
174
  ref={ref}
173
175
  role="listbox"
@@ -175,6 +177,7 @@ const Options = React.forwardRef(({
175
177
  aria-activedescendant={
176
178
  activeOption > -1 ? `option-${activeOption}` : undefined
177
179
  }
180
+ data-testid="TextInputWithDropdownList"
178
181
  >
179
182
  {dropdownInstruction && (
180
183
  <DropdownItemSelectable
@@ -182,6 +185,7 @@ const Options = React.forwardRef(({
182
185
  role="option"
183
186
  key="dropdown-instruction"
184
187
  onClick={closeDropdown}
188
+ data-testid="TextInputWithDropdownInstruction"
185
189
  >
186
190
  <TextItalic>
187
191
  {dropdownInstruction}
@@ -207,6 +211,7 @@ const Options = React.forwardRef(({
207
211
  ? element => element && element.focus()
208
212
  : null
209
213
  }
214
+ data-testid={`TextInputWithDropdownOption-${index}`}
210
215
  >
211
216
  <Text>{option}</Text>
212
217
  </DropdownItemSelectable>
@@ -121,6 +121,7 @@ exports[`renders correctly with no value and no options 1`] = `
121
121
 
122
122
  <div
123
123
  className="c0 TextInputWithDropdown"
124
+ data-testid="TextInputWithDropdownContainer"
124
125
  onKeyDown={[Function]}
125
126
  >
126
127
  <label
@@ -145,6 +146,7 @@ exports[`renders correctly with no value and no options 1`] = `
145
146
  aria-required={false}
146
147
  autoComplete="off"
147
148
  className="c6"
149
+ data-testid="TextInputWithDropdownInput"
148
150
  id="text-input-with-dropdown"
149
151
  name="query"
150
152
  onChange={[Function]}
@@ -280,6 +282,7 @@ exports[`renders correctly with value and no options 1`] = `
280
282
 
281
283
  <div
282
284
  className="c0 TextInputWithDropdown"
285
+ data-testid="TextInputWithDropdownContainer"
283
286
  onKeyDown={[Function]}
284
287
  >
285
288
  <label
@@ -304,6 +307,7 @@ exports[`renders correctly with value and no options 1`] = `
304
307
  aria-required={false}
305
308
  autoComplete="off"
306
309
  className="c6"
310
+ data-testid="TextInputWithDropdownInput"
307
311
  id="text-input-with-dropdown"
308
312
  name="query"
309
313
  onChange={[Function]}
@@ -478,6 +482,7 @@ exports[`renders correctly with value and options 1`] = `
478
482
 
479
483
  <div
480
484
  className="c0 TextInputWithDropdown"
485
+ data-testid="TextInputWithDropdownContainer"
481
486
  onKeyDown={[Function]}
482
487
  >
483
488
  <label
@@ -502,6 +507,7 @@ exports[`renders correctly with value and options 1`] = `
502
507
  aria-required={false}
503
508
  autoComplete="off"
504
509
  className="c6"
510
+ data-testid="TextInputWithDropdownInput"
505
511
  id="text-input-with-dropdown"
506
512
  name="query"
507
513
  onChange={[Function]}
@@ -515,15 +521,18 @@ exports[`renders correctly with value and options 1`] = `
515
521
  </label>
516
522
  <div
517
523
  className="c7 TextInputWithDropdown__options"
524
+ data-testid="TextInputWithDropdownDropdown"
518
525
  >
519
526
  <ul
520
527
  className="c8"
528
+ data-testid="TextInputWithDropdownList"
521
529
  onBlur={[Function]}
522
530
  role="listbox"
523
531
  >
524
532
  <li
525
533
  aria-selected={false}
526
534
  className="c9 c10"
535
+ data-testid="TextInputWithDropdownOption-0"
527
536
  id="option-0"
528
537
  onClick={[Function]}
529
538
  onKeyPress={[Function]}
@@ -539,6 +548,7 @@ exports[`renders correctly with value and options 1`] = `
539
548
  <li
540
549
  aria-selected={false}
541
550
  className="c9 c10"
551
+ data-testid="TextInputWithDropdownOption-1"
542
552
  id="option-1"
543
553
  onClick={[Function]}
544
554
  onKeyPress={[Function]}
@@ -554,6 +564,7 @@ exports[`renders correctly with value and options 1`] = `
554
564
  <li
555
565
  aria-selected={false}
556
566
  className="c9 c10"
567
+ data-testid="TextInputWithDropdownOption-2"
557
568
  id="option-2"
558
569
  onClick={[Function]}
559
570
  onKeyPress={[Function]}
@@ -569,6 +580,7 @@ exports[`renders correctly with value and options 1`] = `
569
580
  <li
570
581
  aria-selected={false}
571
582
  className="c9 c10"
583
+ data-testid="TextInputWithDropdownOption-3"
572
584
  id="option-3"
573
585
  onClick={[Function]}
574
586
  onKeyPress={[Function]}
@@ -382,6 +382,7 @@ it('renders article teaser correctly', () => {
382
382
  >
383
383
  <div
384
384
  className="c6 c7 c8"
385
+ data-testid="PictureWrapper"
385
386
  >
386
387
  <img
387
388
  alt="Image's description"
@@ -390,6 +391,7 @@ it('renders article teaser correctly', () => {
390
391
  data-sizes="auto"
391
392
  data-src="http://images.ctfassets.net/zsfivwzfgl3t/Yq59XdwwQgjNOxky93K1Q/17c2d80dce99067b0b3508f33075cbe3/funding_4-3_2x.jpg"
392
393
  data-srcset="//images.ctfassets.net/zsfivwzfgl3t/Yq59XdwwQgjNOxky93K1Q/17c2d80dce99067b0b3508f33075cbe3/funding_4-3_2x.jpg?w=200&h=150&q=50 200w,//images.ctfassets.net/zsfivwzfgl3t/Yq59XdwwQgjNOxky93K1Q/17c2d80dce99067b0b3508f33075cbe3/funding_4-3_2x.jpg?w=400&h=300&q=50 400w,//images.ctfassets.net/zsfivwzfgl3t/Yq59XdwwQgjNOxky93K1Q/17c2d80dce99067b0b3508f33075cbe3/funding_4-3_2x.jpg?w=800&h=600&q=50 800w,//images.ctfassets.net/zsfivwzfgl3t/Yq59XdwwQgjNOxky93K1Q/17c2d80dce99067b0b3508f33075cbe3/funding_4-3_2x.jpg?w=1200&h=900&q=50 1200w,//images.ctfassets.net/zsfivwzfgl3t/Yq59XdwwQgjNOxky93K1Q/17c2d80dce99067b0b3508f33075cbe3/funding_4-3_2x.jpg?w=1440&h=1080&q=50 1440w"
394
+ data-testid="Picture"
393
395
  src="http://images.ctfassets.net/zsfivwzfgl3t/Yq59XdwwQgjNOxky93K1Q/17c2d80dce99067b0b3508f33075cbe3/funding_4-3_2x.jpg"
394
396
  srcSet="data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7"
395
397
  />
@@ -802,6 +804,7 @@ it('renders press realese correctly', () => {
802
804
  >
803
805
  <div
804
806
  className="c6 c7 c8"
807
+ data-testid="PictureWrapper"
805
808
  >
806
809
  <img
807
810
  alt="Image's description"
@@ -810,6 +813,7 @@ it('renders press realese correctly', () => {
810
813
  data-sizes="auto"
811
814
  data-src="mock.asset"
812
815
  data-srcset="mock.asset"
816
+ data-testid="Picture"
813
817
  src="mock.asset"
814
818
  srcSet="data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7"
815
819
  />
@@ -73,6 +73,7 @@ exports[`renders correctly 1`] = `
73
73
  >
74
74
  <div
75
75
  className="c2 lazyload"
76
+ data-testid="PictureWrapper"
76
77
  squaredCorners={false}
77
78
  >
78
79
  <img
@@ -82,6 +83,7 @@ exports[`renders correctly 1`] = `
82
83
  data-sizes="auto"
83
84
  data-src={null}
84
85
  data-srcset="http://images.ctfassets.net/zsfivwzfgl3t/Yq59XdwwQgjNOxky93K1Q/17c2d80dce99067b0b3508f33075cbe3/funding_4-3_2x.jpg"
86
+ data-testid="Picture"
85
87
  src={null}
86
88
  srcSet="data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7"
87
89
  />
@@ -51,17 +51,19 @@ const CTAMultiCard = ({ data }) => {
51
51
  const cardsBackground = snakeCase(bgCards || 'white');
52
52
 
53
53
  return (
54
- <CardsQueryWrapper>
54
+ <CardsQueryWrapper data-testid="CTAMultiCardQueryWrapper">
55
55
  <CardsSection
56
56
  $backgroundColor={cardsBackground}
57
57
  $paddingAbove={paddingAbove}
58
58
  $paddingBelow={paddingBelow}
59
+ data-testid="CTAMultiCardSection"
59
60
  >
60
- <CardsInner>
61
+ <CardsInner data-testid="CTAMultiCardInner">
61
62
  <CardsContainer
62
63
  $columns={columns}
63
64
  $isCarousel={carouselOfCards}
64
65
  $useSplideCarousel={useSplideCarousel}
66
+ data-testid="CTAMultiCardContainer"
65
67
  >
66
68
  {useSplideCarousel ? (
67
69
  <Splide
@@ -375,15 +375,19 @@ exports[`handles data structure correctly 1`] = `
375
375
 
376
376
  <div
377
377
  className="c0"
378
+ data-testid="CTAMultiCardQueryWrapper"
378
379
  >
379
380
  <div
380
381
  className="c1"
382
+ data-testid="CTAMultiCardSection"
381
383
  >
382
384
  <div
383
385
  className="c2"
386
+ data-testid="CTAMultiCardInner"
384
387
  >
385
388
  <div
386
389
  className="c3"
390
+ data-testid="CTAMultiCardContainer"
387
391
  >
388
392
  <div
389
393
  className="c4"
@@ -400,6 +404,7 @@ exports[`handles data structure correctly 1`] = `
400
404
  >
401
405
  <div
402
406
  className="c9 lazyload"
407
+ data-testid="PictureWrapper"
403
408
  >
404
409
  <img
405
410
  alt=""
@@ -408,6 +413,7 @@ exports[`handles data structure correctly 1`] = `
408
413
  data-sizes="auto"
409
414
  data-src="@component-library/src/styleguide/assets/challenge-1.jpg"
410
415
  data-srcset="@component-library/src/styleguide/assets/challenge-1.jpg 678w"
416
+ data-testid="Picture"
411
417
  src="@component-library/src/styleguide/assets/challenge-1.jpg"
412
418
  srcSet="data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7"
413
419
  />
@@ -482,6 +488,7 @@ exports[`handles data structure correctly 1`] = `
482
488
  >
483
489
  <div
484
490
  className="c9 lazyload"
491
+ data-testid="PictureWrapper"
485
492
  >
486
493
  <img
487
494
  alt=""
@@ -490,6 +497,7 @@ exports[`handles data structure correctly 1`] = `
490
497
  data-sizes="auto"
491
498
  data-src="@component-library/src/styleguide/assets/challenge-1.jpg"
492
499
  data-srcset="@component-library/src/styleguide/assets/challenge-1.jpg 678w"
500
+ data-testid="Picture"
493
501
  src="@component-library/src/styleguide/assets/challenge-1.jpg"
494
502
  srcSet="data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7"
495
503
  />
@@ -528,6 +536,7 @@ exports[`handles data structure correctly 1`] = `
528
536
  >
529
537
  <div
530
538
  className="c9 lazyload"
539
+ data-testid="PictureWrapper"
531
540
  >
532
541
  <img
533
542
  alt=""
@@ -536,6 +545,7 @@ exports[`handles data structure correctly 1`] = `
536
545
  data-sizes="auto"
537
546
  data-src="@component-library/src/styleguide/assets/challenge-1.jpg"
538
547
  data-srcset="@component-library/src/styleguide/assets/challenge-1.jpg 678w"
548
+ data-testid="Picture"
539
549
  src="@component-library/src/styleguide/assets/challenge-1.jpg"
540
550
  srcSet="data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7"
541
551
  />
@@ -1071,15 +1081,19 @@ exports[`renders 2 columns layout correctly 1`] = `
1071
1081
 
1072
1082
  <div
1073
1083
  className="c0"
1084
+ data-testid="CTAMultiCardQueryWrapper"
1074
1085
  >
1075
1086
  <div
1076
1087
  className="c1"
1088
+ data-testid="CTAMultiCardSection"
1077
1089
  >
1078
1090
  <div
1079
1091
  className="c2"
1092
+ data-testid="CTAMultiCardInner"
1080
1093
  >
1081
1094
  <div
1082
1095
  className="c3"
1096
+ data-testid="CTAMultiCardContainer"
1083
1097
  >
1084
1098
  <div
1085
1099
  className="c4"
@@ -1096,6 +1110,7 @@ exports[`renders 2 columns layout correctly 1`] = `
1096
1110
  >
1097
1111
  <div
1098
1112
  className="c9 lazyload"
1113
+ data-testid="PictureWrapper"
1099
1114
  >
1100
1115
  <img
1101
1116
  alt=""
@@ -1104,6 +1119,7 @@ exports[`renders 2 columns layout correctly 1`] = `
1104
1119
  data-sizes="auto"
1105
1120
  data-src="@component-library/src/styleguide/assets/challenge-1.jpg"
1106
1121
  data-srcset="@component-library/src/styleguide/assets/challenge-1.jpg 678w"
1122
+ data-testid="Picture"
1107
1123
  src="@component-library/src/styleguide/assets/challenge-1.jpg"
1108
1124
  srcSet="data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7"
1109
1125
  />
@@ -1178,6 +1194,7 @@ exports[`renders 2 columns layout correctly 1`] = `
1178
1194
  >
1179
1195
  <div
1180
1196
  className="c9 lazyload"
1197
+ data-testid="PictureWrapper"
1181
1198
  >
1182
1199
  <img
1183
1200
  alt=""
@@ -1186,6 +1203,7 @@ exports[`renders 2 columns layout correctly 1`] = `
1186
1203
  data-sizes="auto"
1187
1204
  data-src="@component-library/src/styleguide/assets/challenge-1.jpg"
1188
1205
  data-srcset="@component-library/src/styleguide/assets/challenge-1.jpg 678w"
1206
+ data-testid="Picture"
1189
1207
  src="@component-library/src/styleguide/assets/challenge-1.jpg"
1190
1208
  srcSet="data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7"
1191
1209
  />
@@ -1224,6 +1242,7 @@ exports[`renders 2 columns layout correctly 1`] = `
1224
1242
  >
1225
1243
  <div
1226
1244
  className="c9 lazyload"
1245
+ data-testid="PictureWrapper"
1227
1246
  >
1228
1247
  <img
1229
1248
  alt=""
@@ -1232,6 +1251,7 @@ exports[`renders 2 columns layout correctly 1`] = `
1232
1251
  data-sizes="auto"
1233
1252
  data-src="@component-library/src/styleguide/assets/challenge-1.jpg"
1234
1253
  data-srcset="@component-library/src/styleguide/assets/challenge-1.jpg 678w"
1254
+ data-testid="Picture"
1235
1255
  src="@component-library/src/styleguide/assets/challenge-1.jpg"
1236
1256
  srcSet="data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7"
1237
1257
  />
@@ -1747,15 +1767,19 @@ exports[`renders carousel mode correctly 1`] = `
1747
1767
 
1748
1768
  <div
1749
1769
  className="c0"
1770
+ data-testid="CTAMultiCardQueryWrapper"
1750
1771
  >
1751
1772
  <div
1752
1773
  className="c1"
1774
+ data-testid="CTAMultiCardSection"
1753
1775
  >
1754
1776
  <div
1755
1777
  className="c2"
1778
+ data-testid="CTAMultiCardInner"
1756
1779
  >
1757
1780
  <div
1758
1781
  className="c3"
1782
+ data-testid="CTAMultiCardContainer"
1759
1783
  >
1760
1784
  <div
1761
1785
  className="c4"
@@ -1772,6 +1796,7 @@ exports[`renders carousel mode correctly 1`] = `
1772
1796
  >
1773
1797
  <div
1774
1798
  className="c9 lazyload"
1799
+ data-testid="PictureWrapper"
1775
1800
  >
1776
1801
  <img
1777
1802
  alt=""
@@ -1780,6 +1805,7 @@ exports[`renders carousel mode correctly 1`] = `
1780
1805
  data-sizes="auto"
1781
1806
  data-src="@component-library/src/styleguide/assets/challenge-1.jpg"
1782
1807
  data-srcset="@component-library/src/styleguide/assets/challenge-1.jpg 678w"
1808
+ data-testid="Picture"
1783
1809
  src="@component-library/src/styleguide/assets/challenge-1.jpg"
1784
1810
  srcSet="data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7"
1785
1811
  />
@@ -1854,6 +1880,7 @@ exports[`renders carousel mode correctly 1`] = `
1854
1880
  >
1855
1881
  <div
1856
1882
  className="c9 lazyload"
1883
+ data-testid="PictureWrapper"
1857
1884
  >
1858
1885
  <img
1859
1886
  alt=""
@@ -1862,6 +1889,7 @@ exports[`renders carousel mode correctly 1`] = `
1862
1889
  data-sizes="auto"
1863
1890
  data-src="@component-library/src/styleguide/assets/challenge-1.jpg"
1864
1891
  data-srcset="@component-library/src/styleguide/assets/challenge-1.jpg 678w"
1892
+ data-testid="Picture"
1865
1893
  src="@component-library/src/styleguide/assets/challenge-1.jpg"
1866
1894
  srcSet="data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7"
1867
1895
  />
@@ -1900,6 +1928,7 @@ exports[`renders carousel mode correctly 1`] = `
1900
1928
  >
1901
1929
  <div
1902
1930
  className="c9 lazyload"
1931
+ data-testid="PictureWrapper"
1903
1932
  >
1904
1933
  <img
1905
1934
  alt=""
@@ -1908,6 +1937,7 @@ exports[`renders carousel mode correctly 1`] = `
1908
1937
  data-sizes="auto"
1909
1938
  data-src="@component-library/src/styleguide/assets/challenge-1.jpg"
1910
1939
  data-srcset="@component-library/src/styleguide/assets/challenge-1.jpg 678w"
1940
+ data-testid="Picture"
1911
1941
  src="@component-library/src/styleguide/assets/challenge-1.jpg"
1912
1942
  srcSet="data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7"
1913
1943
  />
@@ -2423,15 +2453,19 @@ exports[`renders correctly with data prop 1`] = `
2423
2453
 
2424
2454
  <div
2425
2455
  className="c0"
2456
+ data-testid="CTAMultiCardQueryWrapper"
2426
2457
  >
2427
2458
  <div
2428
2459
  className="c1"
2460
+ data-testid="CTAMultiCardSection"
2429
2461
  >
2430
2462
  <div
2431
2463
  className="c2"
2464
+ data-testid="CTAMultiCardInner"
2432
2465
  >
2433
2466
  <div
2434
2467
  className="c3"
2468
+ data-testid="CTAMultiCardContainer"
2435
2469
  >
2436
2470
  <div
2437
2471
  className="c4"
@@ -2448,6 +2482,7 @@ exports[`renders correctly with data prop 1`] = `
2448
2482
  >
2449
2483
  <div
2450
2484
  className="c9 lazyload"
2485
+ data-testid="PictureWrapper"
2451
2486
  >
2452
2487
  <img
2453
2488
  alt=""
@@ -2456,6 +2491,7 @@ exports[`renders correctly with data prop 1`] = `
2456
2491
  data-sizes="auto"
2457
2492
  data-src="@component-library/src/styleguide/assets/challenge-1.jpg"
2458
2493
  data-srcset="@component-library/src/styleguide/assets/challenge-1.jpg 678w"
2494
+ data-testid="Picture"
2459
2495
  src="@component-library/src/styleguide/assets/challenge-1.jpg"
2460
2496
  srcSet="data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7"
2461
2497
  />
@@ -2530,6 +2566,7 @@ exports[`renders correctly with data prop 1`] = `
2530
2566
  >
2531
2567
  <div
2532
2568
  className="c9 lazyload"
2569
+ data-testid="PictureWrapper"
2533
2570
  >
2534
2571
  <img
2535
2572
  alt=""
@@ -2538,6 +2575,7 @@ exports[`renders correctly with data prop 1`] = `
2538
2575
  data-sizes="auto"
2539
2576
  data-src="@component-library/src/styleguide/assets/challenge-1.jpg"
2540
2577
  data-srcset="@component-library/src/styleguide/assets/challenge-1.jpg 678w"
2578
+ data-testid="Picture"
2541
2579
  src="@component-library/src/styleguide/assets/challenge-1.jpg"
2542
2580
  srcSet="data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7"
2543
2581
  />
@@ -2576,6 +2614,7 @@ exports[`renders correctly with data prop 1`] = `
2576
2614
  >
2577
2615
  <div
2578
2616
  className="c9 lazyload"
2617
+ data-testid="PictureWrapper"
2579
2618
  >
2580
2619
  <img
2581
2620
  alt=""
@@ -2584,6 +2623,7 @@ exports[`renders correctly with data prop 1`] = `
2584
2623
  data-sizes="auto"
2585
2624
  data-src="@component-library/src/styleguide/assets/challenge-1.jpg"
2586
2625
  data-srcset="@component-library/src/styleguide/assets/challenge-1.jpg 678w"
2626
+ data-testid="Picture"
2587
2627
  src="@component-library/src/styleguide/assets/challenge-1.jpg"
2588
2628
  srcSet="data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7"
2589
2629
  />
@@ -35,8 +35,9 @@ const CTASingleCard = ({ data }) => {
35
35
  $paddingAbove={paddingAbove}
36
36
  $paddingBelow={paddingBelow}
37
37
  $backgroundColor={sectionBackgroundColour}
38
+ data-testid="CTASingleCardWrapper"
38
39
  >
39
- <SingleCardInner>
40
+ <SingleCardInner data-testid="CTASingleCardInner">
40
41
  <CTACard
41
42
  card={card}
42
43
  isCarousel={false}