@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
@@ -37,9 +37,11 @@ it('renders correctly', () => {
37
37
 
38
38
  <section
39
39
  className="c0"
40
+ data-testid="DoubleCopySection"
40
41
  >
41
42
  <div
42
43
  className="c1"
44
+ data-testid="DoubleCopyLeftWrapper"
43
45
  >
44
46
  <div
45
47
  className="c2"
@@ -52,6 +54,7 @@ it('renders correctly', () => {
52
54
  </div>
53
55
  <div
54
56
  className="c1"
57
+ data-testid="DoubleCopyRightWrapper"
55
58
  >
56
59
  <div
57
60
  className="c2"
@@ -17,14 +17,14 @@ const EmailSignUp = ({ formContext, ...rest }) => {
17
17
  const errorMsg = errors && errors.email && errors.email.message;
18
18
 
19
19
  return (
20
- <EmailSignUpWrapper>
21
- <LabelWrapper>
22
- <StyledLabel>
20
+ <EmailSignUpWrapper data-testid="EmailSignUpWrapper">
21
+ <LabelWrapper data-testid="EmailSignUpLabelWrapper">
22
+ <StyledLabel data-testid="EmailSignUpLabel">
23
23
  Subscribe to our newsletter
24
24
  </StyledLabel>
25
25
  </LabelWrapper>
26
- <FormWrapper $error={!!errorMsg}>
27
- <InputWrapper>
26
+ <FormWrapper $error={!!errorMsg} data-testid="EmailSignUpFormWrapper">
27
+ <InputWrapper data-testid="EmailSignUpInputWrapper">
28
28
  <StyledEmailInput
29
29
  name="email"
30
30
  type="email"
@@ -36,10 +36,11 @@ const EmailSignUp = ({ formContext, ...rest }) => {
36
36
  optional
37
37
  {...register('email')}
38
38
  {...rest}
39
+ data-testid="EmailSignUpInput"
39
40
  />
40
41
  </InputWrapper>
41
- <ButtonWrapper>
42
- <StyledEmailSignUpButton type="submit" color="white">
42
+ <ButtonWrapper data-testid="EmailSignUpButtonWrapper">
43
+ <StyledEmailSignUpButton type="submit" color="white" data-testid="EmailSignUpButton">
43
44
  <span className="emailSignUpButtonContent">
44
45
  <span className="emailSignUpButtonLabel">Sign up</span>
45
46
  <span className="emailSignUpButtonArrow" aria-hidden="true">
@@ -233,6 +233,7 @@ exports[`renders "Full Height Media" Hero Banner correctly 1`] = `
233
233
  >
234
234
  <div
235
235
  className="c3 lazyload"
236
+ data-testid="PictureWrapper"
236
237
  >
237
238
  <img
238
239
  alt="Image alt text"
@@ -241,6 +242,7 @@ exports[`renders "Full Height Media" Hero Banner correctly 1`] = `
241
242
  data-sizes="auto"
242
243
  data-src="mock.asset"
243
244
  data-srcset="mock.asset"
245
+ data-testid="Picture"
244
246
  src="mock.asset"
245
247
  srcSet="data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7"
246
248
  />
@@ -504,6 +506,7 @@ exports[`renders "Half Height Media" Hero Banner correctly 1`] = `
504
506
  >
505
507
  <div
506
508
  className="c3 lazyload"
509
+ data-testid="PictureWrapper"
507
510
  >
508
511
  <img
509
512
  alt="Image alt text"
@@ -512,6 +515,7 @@ exports[`renders "Half Height Media" Hero Banner correctly 1`] = `
512
515
  data-sizes="auto"
513
516
  data-src="mock.asset"
514
517
  data-srcset="mock.asset"
518
+ data-testid="Picture"
515
519
  src="mock.asset"
516
520
  srcSet="data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7"
517
521
  />
@@ -1030,6 +1034,7 @@ exports[`renders "Text Banner" Hero Banner correctly 2`] = `
1030
1034
  >
1031
1035
  <div
1032
1036
  className="c3 lazyload"
1037
+ data-testid="PictureWrapper"
1033
1038
  >
1034
1039
  <img
1035
1040
  alt="Image alt text"
@@ -1038,6 +1043,7 @@ exports[`renders "Text Banner" Hero Banner correctly 2`] = `
1038
1043
  data-sizes="auto"
1039
1044
  data-src="mock.asset"
1040
1045
  data-srcset="mock.asset"
1046
+ data-testid="Picture"
1041
1047
  src="mock.asset"
1042
1048
  srcSet="data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7"
1043
1049
  />
@@ -1070,11 +1076,13 @@ exports[`renders "Text Banner" Hero Banner correctly 2`] = `
1070
1076
  >
1071
1077
  <div
1072
1078
  className="c11 c12"
1079
+ data-testid="PictureWrapper"
1073
1080
  >
1074
1081
  <img
1075
1082
  alt=""
1076
1083
  className="c13 lazyload"
1077
1084
  data-src="mock.asset"
1085
+ data-testid="Picture"
1078
1086
  />
1079
1087
  </div>
1080
1088
  </div>
@@ -147,6 +147,7 @@ it('renders correctly', () => {
147
147
  >
148
148
  <div
149
149
  className="c2 lazyload"
150
+ data-testid="PictureWrapper"
150
151
  >
151
152
  <img
152
153
  alt="test Image"
@@ -155,6 +156,7 @@ it('renders correctly', () => {
155
156
  data-sizes="auto"
156
157
  data-src={null}
157
158
  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"
159
+ data-testid="Picture"
158
160
  src={null}
159
161
  srcSet="data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7"
160
162
  />
@@ -106,11 +106,13 @@ exports[`renders AmbientVideo when video props are provided correctly 1`] = `
106
106
 
107
107
  <div
108
108
  className="c0 c1"
109
+ data-testid="AmbientVideoWrapper"
109
110
  >
110
111
  <video
111
112
  autoPlay={true}
112
113
  className="c2"
113
114
  controls={false}
115
+ data-testid="AmbientVideo"
114
116
  loop={true}
115
117
  muted={true}
116
118
  onEnded={[Function]}
@@ -143,12 +145,14 @@ exports[`renders AmbientVideo when video props are provided correctly 1`] = `
143
145
  aria-label="Pause"
144
146
  className="c5 c6"
145
147
  data-play-pause="pause"
148
+ data-testid="PlayPauseButton"
146
149
  onClick={[Function]}
147
150
  type="button"
148
151
  >
149
152
  <span
150
153
  aria-hidden={true}
151
154
  className="c7 c8"
155
+ data-testid="PlayPauseIcon"
152
156
  />
153
157
  </button>
154
158
  </div>
@@ -171,6 +175,7 @@ exports[`renders Picture with flat props correctly 1`] = `
171
175
 
172
176
  <div
173
177
  className="c0 lazyload"
178
+ data-testid="PictureWrapper"
174
179
  >
175
180
  <img
176
181
  alt="Image alt text"
@@ -179,6 +184,7 @@ exports[`renders Picture with flat props correctly 1`] = `
179
184
  data-sizes="auto"
180
185
  data-src="http://images.ctfassets.net/zsfivwzfgl3t/Yq59XdwwQgjNOxky93K1Q/17c2d80dce99067b0b3508f33075cbe3/funding_4-3_2x.jpg"
181
186
  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"
187
+ data-testid="Picture"
182
188
  src="http://images.ctfassets.net/zsfivwzfgl3t/Yq59XdwwQgjNOxky93K1Q/17c2d80dce99067b0b3508f33075cbe3/funding_4-3_2x.jpg"
183
189
  srcSet="data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7"
184
190
  />
@@ -202,6 +208,7 @@ exports[`renders Picture with image object correctly 1`] = `
202
208
 
203
209
  <div
204
210
  className="c0 lazyload"
211
+ data-testid="PictureWrapper"
205
212
  >
206
213
  <img
207
214
  alt="Background image"
@@ -210,6 +217,7 @@ exports[`renders Picture with image object correctly 1`] = `
210
217
  data-sizes="auto"
211
218
  data-src="http://images.ctfassets.net/zsfivwzfgl3t/Yq59XdwwQgjNOxky93K1Q/17c2d80dce99067b0b3508f33075cbe3/funding_4-3_2x.jpg"
212
219
  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"
220
+ data-testid="Picture"
213
221
  src="http://images.ctfassets.net/zsfivwzfgl3t/Yq59XdwwQgjNOxky93K1Q/17c2d80dce99067b0b3508f33075cbe3/funding_4-3_2x.jpg"
214
222
  srcSet="data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7"
215
223
  />
@@ -245,6 +253,7 @@ exports[`renders with asBackground correctly 1`] = `
245
253
  >
246
254
  <div
247
255
  className="c1 lazyload"
256
+ data-testid="PictureWrapper"
248
257
  >
249
258
  <img
250
259
  alt="Background image"
@@ -253,6 +262,7 @@ exports[`renders with asBackground correctly 1`] = `
253
262
  data-sizes="auto"
254
263
  data-src="http://images.ctfassets.net/zsfivwzfgl3t/Yq59XdwwQgjNOxky93K1Q/17c2d80dce99067b0b3508f33075cbe3/funding_4-3_2x.jpg"
255
264
  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"
265
+ data-testid="Picture"
256
266
  src="http://images.ctfassets.net/zsfivwzfgl3t/Yq59XdwwQgjNOxky93K1Q/17c2d80dce99067b0b3508f33075cbe3/funding_4-3_2x.jpg"
257
267
  srcSet="data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7"
258
268
  />
@@ -255,6 +255,7 @@ exports[`renders Promo correctly 1`] = `
255
255
  >
256
256
  <div
257
257
  className="c2 lazyload"
258
+ data-testid="PictureWrapper"
258
259
  >
259
260
  <img
260
261
  alt=""
@@ -263,6 +264,7 @@ exports[`renders Promo correctly 1`] = `
263
264
  data-sizes="auto"
264
265
  data-src="mock.asset"
265
266
  data-srcset="mock.asset"
267
+ data-testid="Picture"
266
268
  src="mock.asset"
267
269
  srcSet="data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7"
268
270
  />
@@ -567,6 +569,7 @@ exports[`renders Promo correctly end position 1`] = `
567
569
  >
568
570
  <div
569
571
  className="c2 lazyload"
572
+ data-testid="PictureWrapper"
570
573
  >
571
574
  <img
572
575
  alt=""
@@ -575,6 +578,7 @@ exports[`renders Promo correctly end position 1`] = `
575
578
  data-sizes="auto"
576
579
  data-src="mock.asset"
577
580
  data-srcset="mock.asset"
581
+ data-testid="Picture"
578
582
  src="mock.asset"
579
583
  srcSet="data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7"
580
584
  />
@@ -121,6 +121,7 @@ exports[`renders correctly 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 1`] = `
145
146
  aria-required={false}
146
147
  autoComplete="off"
147
148
  className="c6"
149
+ data-testid="TextInputWithDropdownInput"
148
150
  defaultValue=""
149
151
  id="school-lookup"
150
152
  name="school-lookup"
@@ -166,11 +166,13 @@ exports[`renders correctly in minimalist form 1`] = `
166
166
  >
167
167
  <div
168
168
  className="c4"
169
+ data-testid="PictureWrapper"
169
170
  >
170
171
  <img
171
172
  alt="Image's description"
172
173
  className="c5 lazyload"
173
174
  data-src={null}
175
+ data-testid="Picture"
174
176
  />
175
177
  </div>
176
178
  </div>
@@ -391,11 +393,13 @@ exports[`renders correctly with copy 1`] = `
391
393
  >
392
394
  <div
393
395
  className="c4"
396
+ data-testid="PictureWrapper"
394
397
  >
395
398
  <img
396
399
  alt="Image's description"
397
400
  className="c5 lazyload"
398
401
  data-src={null}
402
+ data-testid="Picture"
399
403
  />
400
404
  </div>
401
405
  </div>
@@ -588,11 +592,13 @@ exports[`renders correctly with date 1`] = `
588
592
  >
589
593
  <div
590
594
  className="c4"
595
+ data-testid="PictureWrapper"
591
596
  >
592
597
  <img
593
598
  alt="Image's description"
594
599
  className="c5 lazyload"
595
600
  data-src={null}
601
+ data-testid="Picture"
596
602
  />
597
603
  </div>
598
604
  </div>
@@ -780,11 +786,13 @@ exports[`renders correctly with date and type 1`] = `
780
786
  >
781
787
  <div
782
788
  className="c4"
789
+ data-testid="PictureWrapper"
783
790
  >
784
791
  <img
785
792
  alt="Image's description"
786
793
  className="c5 lazyload"
787
794
  data-src={null}
795
+ data-testid="Picture"
788
796
  />
789
797
  </div>
790
798
  </div>
@@ -144,6 +144,7 @@ exports[`renders Single Message with 100% vertical height image correctly 1`] =
144
144
  >
145
145
  <div
146
146
  className="c3 lazyload"
147
+ data-testid="PictureWrapper"
147
148
  >
148
149
  <img
149
150
  alt=""
@@ -152,6 +153,7 @@ exports[`renders Single Message with 100% vertical height image correctly 1`] =
152
153
  data-sizes="auto"
153
154
  data-src="http://images.ctfassets.net/zsfivwzfgl3t/Yq59XdwwQgjNOxky93K1Q/17c2d80dce99067b0b3508f33075cbe3/funding_4-3_2x.jpg"
154
155
  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"
156
+ data-testid="Picture"
155
157
  src="http://images.ctfassets.net/zsfivwzfgl3t/Yq59XdwwQgjNOxky93K1Q/17c2d80dce99067b0b3508f33075cbe3/funding_4-3_2x.jpg"
156
158
  srcSet="data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7"
157
159
  />
@@ -402,6 +404,7 @@ exports[`renders Single Message with Image correctly 1`] = `
402
404
  >
403
405
  <div
404
406
  className="c3 lazyload"
407
+ data-testid="PictureWrapper"
405
408
  >
406
409
  <img
407
410
  alt=""
@@ -410,6 +413,7 @@ exports[`renders Single Message with Image correctly 1`] = `
410
413
  data-sizes="auto"
411
414
  data-src="http://images.ctfassets.net/zsfivwzfgl3t/Yq59XdwwQgjNOxky93K1Q/17c2d80dce99067b0b3508f33075cbe3/funding_4-3_2x.jpg"
412
415
  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"
416
+ data-testid="Picture"
413
417
  src="http://images.ctfassets.net/zsfivwzfgl3t/Yq59XdwwQgjNOxky93K1Q/17c2d80dce99067b0b3508f33075cbe3/funding_4-3_2x.jpg"
414
418
  srcSet="data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7"
415
419
  />
@@ -580,6 +584,7 @@ exports[`renders Single Message with double image correctly 1`] = `
580
584
  >
581
585
  <div
582
586
  className="c3 lazyload"
587
+ data-testid="PictureWrapper"
583
588
  >
584
589
  <img
585
590
  alt=""
@@ -588,6 +593,7 @@ exports[`renders Single Message with double image correctly 1`] = `
588
593
  data-sizes="auto"
589
594
  data-src="http://images.ctfassets.net/zsfivwzfgl3t/Yq59XdwwQgjNOxky93K1Q/17c2d80dce99067b0b3508f33075cbe3/funding_4-3_2x.jpg"
590
595
  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"
596
+ data-testid="Picture"
591
597
  src="http://images.ctfassets.net/zsfivwzfgl3t/Yq59XdwwQgjNOxky93K1Q/17c2d80dce99067b0b3508f33075cbe3/funding_4-3_2x.jpg"
592
598
  srcSet="data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7"
593
599
  />
@@ -598,6 +604,7 @@ exports[`renders Single Message with double image correctly 1`] = `
598
604
  >
599
605
  <div
600
606
  className="c3 lazyload"
607
+ data-testid="PictureWrapper"
601
608
  >
602
609
  <img
603
610
  alt=""
@@ -606,6 +613,7 @@ exports[`renders Single Message with double image correctly 1`] = `
606
613
  data-sizes="auto"
607
614
  data-src="http://images.ctfassets.net/zsfivwzfgl3t/Yq59XdwwQgjNOxky93K1Q/17c2d80dce99067b0b3508f33075cbe3/funding_4-3_2x.jpg"
608
615
  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"
616
+ data-testid="Picture"
609
617
  src="http://images.ctfassets.net/zsfivwzfgl3t/Yq59XdwwQgjNOxky93K1Q/17c2d80dce99067b0b3508f33075cbe3/funding_4-3_2x.jpg"
610
618
  srcSet="data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7"
611
619
  />
@@ -876,6 +884,7 @@ exports[`renders Single Message with full width correctly 1`] = `
876
884
  >
877
885
  <div
878
886
  className="c3 lazyload"
887
+ data-testid="PictureWrapper"
879
888
  >
880
889
  <img
881
890
  alt=""
@@ -884,6 +893,7 @@ exports[`renders Single Message with full width correctly 1`] = `
884
893
  data-sizes="auto"
885
894
  data-src="http://images.ctfassets.net/zsfivwzfgl3t/Yq59XdwwQgjNOxky93K1Q/17c2d80dce99067b0b3508f33075cbe3/funding_4-3_2x.jpg"
886
895
  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"
896
+ data-testid="Picture"
887
897
  src="http://images.ctfassets.net/zsfivwzfgl3t/Yq59XdwwQgjNOxky93K1Q/17c2d80dce99067b0b3508f33075cbe3/funding_4-3_2x.jpg"
888
898
  srcSet="data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7"
889
899
  />
@@ -1002,6 +1012,7 @@ exports[`renders Single Message with full width image and no text correctly 1`]
1002
1012
  >
1003
1013
  <div
1004
1014
  className="c3 lazyload"
1015
+ data-testid="PictureWrapper"
1005
1016
  >
1006
1017
  <img
1007
1018
  alt=""
@@ -1010,6 +1021,7 @@ exports[`renders Single Message with full width image and no text correctly 1`]
1010
1021
  data-sizes="auto"
1011
1022
  data-src="http://images.ctfassets.net/zsfivwzfgl3t/Yq59XdwwQgjNOxky93K1Q/17c2d80dce99067b0b3508f33075cbe3/funding_4-3_2x.jpg"
1012
1023
  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"
1024
+ data-testid="Picture"
1013
1025
  src="http://images.ctfassets.net/zsfivwzfgl3t/Yq59XdwwQgjNOxky93K1Q/17c2d80dce99067b0b3508f33075cbe3/funding_4-3_2x.jpg"
1014
1026
  srcSet="data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7"
1015
1027
  />
@@ -288,6 +288,7 @@ exports[`renders correctly 1`] = `
288
288
  >
289
289
  <div
290
290
  className="c3 lazyload"
291
+ data-testid="PictureWrapper"
291
292
  >
292
293
  <img
293
294
  alt="Happy man going to work"
@@ -296,6 +297,7 @@ exports[`renders correctly 1`] = `
296
297
  data-sizes="auto"
297
298
  data-src={null}
298
299
  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"
300
+ data-testid="Picture"
299
301
  src={null}
300
302
  srcSet="data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7"
301
303
  />
@@ -28,8 +28,9 @@ const StatsSlice = ({
28
28
  $backgroundColour={pageBackgroundColour}
29
29
  $paddingTop={paddingTop}
30
30
  $paddingBottom={paddingBottom}
31
+ data-testid="StatsSliceOuterWrapper"
31
32
  >
32
- <InnerWrapper>
33
+ <InnerWrapper data-testid="StatsSliceInnerWrapper">
33
34
  {nodes?.map((node, index) => {
34
35
  const key = index + String(node.title);
35
36
  const nodeComponent = (
@@ -62,9 +62,9 @@ export default function StatNodeComponent({
62
62
  let characterDelay = startDelayRef.current;
63
63
 
64
64
  return (
65
- <StatContainer>
66
- <ValueContainer>
67
- <StatValue aria-hidden="true" ref={elRef}>
65
+ <StatContainer data-testid="StatContainer">
66
+ <ValueContainer data-testid="ValueContainer">
67
+ <StatValue aria-hidden="true" ref={elRef} data-testid="StatValue">
68
68
  {wordObjList.map((wordObj, wordIndex) => {
69
69
  // slightly gnarly here as we need to create a span for each word,
70
70
  // then the characters within that span;
@@ -74,7 +74,7 @@ export default function StatNodeComponent({
74
74
  // but that's unlikely to be a problem in practice
75
75
  const wordKey = String(wordIndex) + wordObj.word;
76
76
  return (
77
- <Word key={wordKey}>
77
+ <Word key={wordKey} data-testid={`StatWord-${wordIndex}`}>
78
78
  {wordObj.map(({ character, type }, characterIndex) => {
79
79
  const characterKey = String(characterIndex) + character;
80
80
  // update the character delay for the next character;
@@ -115,11 +115,12 @@ export default function StatNodeComponent({
115
115
  src={altCtaUnderline}
116
116
  $delay={startDelayRef.current + duration * 1.5}
117
117
  data-ease={ease}
118
+ data-testid="ValueUnderline"
118
119
  />
119
120
  )}
120
- <AccessibleValue>{stat}</AccessibleValue>
121
+ <AccessibleValue data-testid="AccessibleValue">{stat}</AccessibleValue>
121
122
  </ValueContainer>
122
- <Body>{body}</Body>
123
+ <Body data-testid="StatBody">{body}</Body>
123
124
  </StatContainer>
124
125
  );
125
126
  }
@@ -631,22 +631,28 @@ exports[`Stats Slices with a single node should render 1`] = `
631
631
 
632
632
  <div
633
633
  className="c0"
634
+ data-testid="StatsSliceOuterWrapper"
634
635
  >
635
636
  <div
636
637
  className="c1"
638
+ data-testid="StatsSliceInnerWrapper"
637
639
  >
638
640
  <div
639
641
  className="c2"
642
+ data-testid="StatContainer"
640
643
  >
641
644
  <div
642
645
  className="c3"
646
+ data-testid="ValueContainer"
643
647
  >
644
648
  <div
645
649
  aria-hidden="true"
646
650
  className="c4"
651
+ data-testid="StatValue"
647
652
  >
648
653
  <span
649
654
  className="c5"
655
+ data-testid="StatWord-0"
650
656
  >
651
657
  <div
652
658
  className="c6"
@@ -1229,12 +1235,14 @@ exports[`Stats Slices with a single node should render 1`] = `
1229
1235
  </div>
1230
1236
  <h2
1231
1237
  className="c22"
1238
+ data-testid="AccessibleValue"
1232
1239
  >
1233
1240
  123,456,789.02
1234
1241
  </h2>
1235
1242
  </div>
1236
1243
  <span
1237
1244
  className="c23 c24"
1245
+ data-testid="StatBody"
1238
1246
  >
1239
1247
  hello
1240
1248
  </span>
@@ -1874,22 +1882,28 @@ exports[`Stats Slices with multiple nodes should render 1`] = `
1874
1882
 
1875
1883
  <div
1876
1884
  className="c0"
1885
+ data-testid="StatsSliceOuterWrapper"
1877
1886
  >
1878
1887
  <div
1879
1888
  className="c1"
1889
+ data-testid="StatsSliceInnerWrapper"
1880
1890
  >
1881
1891
  <div
1882
1892
  className="c2"
1893
+ data-testid="StatContainer"
1883
1894
  >
1884
1895
  <div
1885
1896
  className="c3"
1897
+ data-testid="ValueContainer"
1886
1898
  >
1887
1899
  <div
1888
1900
  aria-hidden="true"
1889
1901
  className="c4"
1902
+ data-testid="StatValue"
1890
1903
  >
1891
1904
  <span
1892
1905
  className="c5"
1906
+ data-testid="StatWord-0"
1893
1907
  >
1894
1908
  <div
1895
1909
  className="c6"
@@ -2472,28 +2486,34 @@ exports[`Stats Slices with multiple nodes should render 1`] = `
2472
2486
  </div>
2473
2487
  <h2
2474
2488
  className="c22"
2489
+ data-testid="AccessibleValue"
2475
2490
  >
2476
2491
  123,456,789.02
2477
2492
  </h2>
2478
2493
  </div>
2479
2494
  <span
2480
2495
  className="c23 c24"
2496
+ data-testid="StatBody"
2481
2497
  >
2482
2498
  Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam.
2483
2499
  </span>
2484
2500
  </div>
2485
2501
  <div
2486
2502
  className="c2"
2503
+ data-testid="StatContainer"
2487
2504
  >
2488
2505
  <div
2489
2506
  className="c3"
2507
+ data-testid="ValueContainer"
2490
2508
  >
2491
2509
  <div
2492
2510
  aria-hidden="true"
2493
2511
  className="c4"
2512
+ data-testid="StatValue"
2494
2513
  >
2495
2514
  <span
2496
2515
  className="c5"
2516
+ data-testid="StatWord-0"
2497
2517
  >
2498
2518
  <div
2499
2519
  className="c6"
@@ -3076,28 +3096,34 @@ exports[`Stats Slices with multiple nodes should render 1`] = `
3076
3096
  </div>
3077
3097
  <h2
3078
3098
  className="c22"
3099
+ data-testid="AccessibleValue"
3079
3100
  >
3080
3101
  456,789,123.02
3081
3102
  </h2>
3082
3103
  </div>
3083
3104
  <span
3084
3105
  className="c23 c24"
3106
+ data-testid="StatBody"
3085
3107
  >
3086
3108
  Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam.
3087
3109
  </span>
3088
3110
  </div>
3089
3111
  <div
3090
3112
  className="c2"
3113
+ data-testid="StatContainer"
3091
3114
  >
3092
3115
  <div
3093
3116
  className="c3"
3117
+ data-testid="ValueContainer"
3094
3118
  >
3095
3119
  <div
3096
3120
  aria-hidden="true"
3097
3121
  className="c4"
3122
+ data-testid="StatValue"
3098
3123
  >
3099
3124
  <span
3100
3125
  className="c5"
3126
+ data-testid="StatWord-0"
3101
3127
  >
3102
3128
  <div
3103
3129
  className="c6"
@@ -3680,12 +3706,14 @@ exports[`Stats Slices with multiple nodes should render 1`] = `
3680
3706
  </div>
3681
3707
  <h2
3682
3708
  className="c22"
3709
+ data-testid="AccessibleValue"
3683
3710
  >
3684
3711
  789,123,456.02
3685
3712
  </h2>
3686
3713
  </div>
3687
3714
  <span
3688
3715
  className="c23 c24"
3716
+ data-testid="StatBody"
3689
3717
  >
3690
3718
  Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam.
3691
3719
  </span>
@@ -121,6 +121,7 @@ exports[`renders correctly 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 1`] = `
145
146
  aria-required={false}
146
147
  autoComplete="off"
147
148
  className="c6"
149
+ data-testid="TextInputWithDropdownInput"
148
150
  defaultValue=""
149
151
  id="typeahead-test"
150
152
  name="q"