From a63561acc796658571470def8be6281d99fdf23d Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Wed, 16 Nov 2022 18:45:29 +0000 Subject: [PATCH 1/3] Update dependency eslint-config-airbnb to v19 --- ...-base-npm-14.2.1-50131c00fb-858bea748a.zip | Bin 30028 -> 0 bytes ...-base-npm-15.0.0-802837dd26-38626bad2c.zip | Bin 0 -> 32110 bytes ...irbnb-npm-18.2.1-19125926b3-ea11cd0006.zip | Bin 23967 -> 0 bytes ...irbnb-npm-19.0.4-a73150c84a-253178689c.zip | Bin 0 -> 26001 bytes package.json | 2 +- yarn.lock | 41 +++++++++--------- 6 files changed, 22 insertions(+), 21 deletions(-) delete mode 100644 .yarn/cache/eslint-config-airbnb-base-npm-14.2.1-50131c00fb-858bea748a.zip create mode 100644 .yarn/cache/eslint-config-airbnb-base-npm-15.0.0-802837dd26-38626bad2c.zip delete mode 100644 .yarn/cache/eslint-config-airbnb-npm-18.2.1-19125926b3-ea11cd0006.zip create mode 100644 .yarn/cache/eslint-config-airbnb-npm-19.0.4-a73150c84a-253178689c.zip diff --git a/.yarn/cache/eslint-config-airbnb-base-npm-14.2.1-50131c00fb-858bea748a.zip b/.yarn/cache/eslint-config-airbnb-base-npm-14.2.1-50131c00fb-858bea748a.zip deleted file mode 100644 index 5f84b75fab258b09ca94a361cabfce30e51382fe..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 30028 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

K~RglG;kR12ri0^S)v~CuU?As(C zTOhz?Oa|jmG8DAw!gNad80yIJIW7iOf(N6iU_lZLtSp*vkBKN8XMEyCn{g{;_eY-E zl7$BDd`SqHkl$h&=r+JbQT@V3e--uvK9-z(jG;^;0I z!-e_W`bs?!q;t;i=Nb+YS+N!4s$0rhXCc^Uq*c0-Dc9aTse&bE@2~d@MT|w70uZmk zaG1YR;U0INF#iA+yRL;nXSDqG$D72)ymQ384W1;NMmwz>2Ccs=x>|^_Y zJmS1IBwYBlh=dB6x>1(XP7+Uh(wQ+Ou` zb3XbIenPW1UI{<%s`4x44wklktxrL~znB3{h>Mb?mBeQ(7SW_N*=W6w8<;P2o891L z4qczk?I3*D)5_6)ekqg;I`a@*jAfBwXOV-bUv8#uTsit2S7G1RpCBI zflXC05FJN|DiL#6Q6EzWM_)VCnATNr{KnmLx6rCX&l~5l7N39L2A_SmzJC!zmLQ{` z$R9f`JRZVwHAA8zl0yz}SAg*Fy)LN_-=1u+fDDNpxQjb3DMqx=H|SC$3k|@&zA`DZ z0P9G%KTF1t!oYHV_$4>Y{VS7t^OjjnhsQhy#S$u$J$Q9)W>;&x^DylR$3=8bcq7#WcR5tp+>a4rR{mzfnp(F-Bo1(5a6k0ME8 zCxVX=vbXJAL1&(o`JhsB+D`ZLIU$0aqc0q;<#I}mVUsm?FZwO{fS1SsQNU>ivieaD zC`CXy_R++il$!6)@l%#Gg~{#X&nA#;v+C8CPua^ZVir+^dl>)W0JRuOayQQbr-*CE zh65F%WGD}s=^t%E&h{?{B2{RBtbX#nou8O*I14aVZiNLT2tBN(7wM%Y{qvYuswi?g zDUcHDK$@9IyYBd!4exaCcYANyHI=5TS@Uwvj)~229j~a~hHjuSY%0K-_zfI^(IIs~ zPKYuBG=fKm+>r8Dn5F7pP0iGsR?sy=v%DMBUKdv3P!%Jg^7JRG7>^zd7Z||dD;O82 zpeZH(zrZuJm{8n46%dn^Jxl`h6O_wk**!|4f+wm5%5LHyF>$3PBS!^U0Ng-Os!azB zU~`{vaaeM#Ft@%6u*jbLtwXVBn`2Oh;h1rqeS&8-N zJg={@gLg2Ro@hg^V-?92TP>HJ@?Rxams90>)~r1Wg0hSQt>cq4igy`KAROi`2a5WV z4{;M}BpsVj6-#j0A(qxvDSM zDm$OSV;Qlyi2G;77RaC$@I!K-01Dq{bF7PRkR{fn&y)P_NRh?=>Mi95S0spew2%cZq6CSm%)?zDtuo@b16QyV}kzK)pV zlj9g>77LFn?G-Z{I}gjX6nkzostz5L07Id(!)Vqw$p*qM?|ftWbq^7!4GTh=;LY)e z#G?m1YNq=S&mF-7a4SG75>ej_b{tb(o~SPrcA-lfjy#3-$Q(y35u0w@fhkAEv|7@U zCzJWXFoo6(x&yPi;91v%T=Z)^0vPd-qlO@=x(Ujp*84_PHJh-oB4Tacq7Vp9K&-#RH%@3f}!W& zuhO!2>NuC~LK>}E4y-96G`i&^#WpPYvZ6cpk2}{>&hj$hKf*u=+@-GLDF~=-5(fHmymui6^F$Unbz@(RP{W|Pa;p#QdrX|RGpJ(Mb#nNi z45d&orNarrCetj27hYRAWs|+DAQiHF3d0S(LS+Y<)I@+p7GJ`V3Kjk%+yUjwVSpamdM#cCwh0fIS7Zxx0&{S<7Th$ z6Rh)qT5E#bpd4y@?f4p}=mJ0>btnkgg@QnG%0LJ9g`@~T)DvHOHwR?_gB`lC)Egec_-;cFb%Y(bMJcR0$FM~e(RxcpMc8)eEm=K|6H8=uLXeD|6PQHGv>B3yu|_4 zClln1ClL3r*wzKV-r5(D@j{0(JvJ^<_mSEg=fND7*ffH=n?^KhtwtX?ezf&|L~XHu z%Q;Z$nACa=`$wFn&IHy;nYd(zY^~I@A&jLN%8&`i04FY_Fe=YctHhd7B_AkJPe7>qk750m_zgsn%`soidVa?cutSf zR_zOvvF&dY%!d)Ip}~;M7Jhwkv^m~7NydlcPU~75EvRldOS%cttAd+WSS9F9@l>#g zNSPJTphgv94(+z`z-2mX0>e~LUDeDl@ksg1M{^kzzj9|$kPX%{ZK%pXk!2^@rP(%J z`pn6MQd&98my97nN#Xwj!pwOPAM~BfQ%~zf%~PL(^^D6G`inQ*b%9_X*Rej!#7DkL z1@TS(K40=;@IP}FPtDdJwLQ27TnlaMQnV)g^q95GolTBWce5YE-)49J4OD$7KZ_js z8!LYh005SMnnwPMBK^U(Y+1EAQ9R<#7z(pBkKo{Ur4KE zEF;1T29I>bybdcE^YxUbtT|C5ISw1e6^w;a{*Ki(1n(ifDi}tEd3tf?jI+~?0q?(yO?<{b@Stko)#V>f|X6W6# zRDRc*?>1MtwS<}KipI$_7&_2HI|rrPHm~AUO=fyHSayD7(;R!furv#k7pUt}62zA0 zxLAxU4l2<7uuYK)ig~(x`9&RA&vxqoA3*?@=0;~n6bpP%Q5&m1pQ+uTcn2l>B~5L# zPT~LO7%n1Ak8l3lAI$#tjeh_y{F_7VXzJi%`Injgw`=6Y3Bm<3poskCK3{4<1X{=7 z^{1eh-vY~KqHV~>W8ByY7GfhKquU<49rsFB;-FMJM340^b`7=&SbvFb$mU-d0F{s* zrXVkK|AD-IrX86ICTjpfu@+Y=h&wMpu?8G zJAB&&<)>=K_+_9uUgghHQ-FO;kS*Wrm%(=O&Zx3ds8~jr#I!L~ zVDZk!1Qcw&1Ok-+Ha^WFA7|F(BuO>{x-X;_>Q0?Z^o=01_z?dhRBW;^$vo|{OtV{W=GZ26 zIc2g0DJAoZM?C!LyhsAoM(D_8*d36&qHP=>?C3@+BHDCYuPAg*%-2w*sD zBrAvjUR7$z;v-STn;Q$@THFBOOtyV}+gPFjX~n)?r8+3zb6zFlmbY2{dR<_q<#HU* z`FMxvds)!JXC(;@B2`=9D7^+&`r`0h!>u}+v|xOi#tBsVdp{?mch9LswK|t=iD9S$ ziSm``#wNOih|+`|KvYd5GOX?Jr&lIRw_+Dq<4o2obY^a!3B-CRin_M+DX$!MRJjhO zK3M&i5uJe3s3y_1SolvHKZK1>aK`YvC@YTf%TTxwX@pd{*lHwd$3A$DzIa@4GE8wZ znAN50C=)bIsR^O|-S#QVwj$yC#Hx{11Y?bn(5ek8Q9T??meTa-H9_cNTcoQka$y;8 zZ>ERn)yb#L@JTop;QmL}AWf5UOene(amTy#$ecBcQN5Wvf*O3cn0Taj8a~6`gC0Zk zZa>pgcA!Hj6TjjOA$Q98K=xvc*jP+JC*ey5u)|b$E0AD3dz;RmUD?>uUp5i=L*Epi zGr(q!Rt}?$la0dmrJZUKlghoZP1VQd(6>N)p*3W zcjx#FEsKL#{uCbT?anl=BZSyW?88}3J7EN{;uw};N;n6Jd;E-LE*z9@BL59U8IwpN zEZLPjJy7`wsyr|(R(5%k9|Q0&Ynh25c9|s@5u5?$T83k6wiIa%(`#TDNsD_^W%e3* z$6mRN^nr?YJ=(@Z_v`B#c9?u+ITB=F20Sg|xOxrpRoF7=MrG?YmDNlEw>wxFRiv5L z55SNxF{j;fZG#5#D3^VSrVv<5l6=2zjLV1Y&Vr|ETA+wolGo#2;i4+Jz^_#$`iG>Hlpih&I4B!H z7@Iz}q`gxV&lGAE7@KE>%(^C|U}=2n&?td>G5g^|ih$sQ$0k29BqE0e^&mc_vNtG% zxj&;#0`57Q&z?;o*+k`JsMmX0+!#Lhmp3?xWUD$#8DDc|+f8}_m}?H}tMt^=ROJP_ zi|g$=Ut#@3Vq0uTNyXU@=Sb! zCb0YtEsJxMuKG}!tItJX&m$(}izD&3wpWV0S3=uoVEZ%?zPFF9AH9oWWJlYV;U07J z(xY}I*&ZM@h8=dfmcMW4a)Q1qz`ENBmS@Z%mYsg~nRkLtLj;?mZ@0Q%E}2Y2cT(h3 zgCpv&JMMXAMzu?mm(4xkKbuB@HIIl@wJjbA1rlLvfLTcSgV-E&S|jin)c*Tc8fvX0 zF$G>UCh+%?McRvH6e9Xz32+WQJ(xHt#(=Q?EhUfJjg+Y)_sQ8FDUpZ|K!n(?brf~JBB{MkO&WwSna==?$TFxG*uKjEaa%Y6{z8T2V$aPu%EhaKXD zq&!Z?y+KgsV&F!v-EInJX2sy{l8f=|J|w1L z2@$f=uI=8a&eL%QuCqIYH`P=y=(u#f|A4w zKZ&{IsB?Z~AqW5z-f}^b2g=t?6&b}Ryv)Bi-AWWO$q1|7Jwy9cZmwol>Q^H#)rP60 z@Nt9Z3!BJE#qco{kU0}_9s*4R=Vd6n{p!LkuqtSdwt{D0y15cf8o}%b`~d-Tj|e?X z^g%bLP3jq)Qj{A#!Edz6IW5GfB_9FziLcbTa{7ckbtF$IlT;u#E7jiime)*%`(2}= z*IYRIOIfW&d27DK(Al=KH9(pN&+$wuxXA0XBEcB*-aBRvThdz!@?qtFRrCDk!^kZM4c@r<_ovY2k6h+g#PW$P4CK&FFu^tGfbAB@DE=j{)}fn zOO<|y+KVu{cYypWTA*-31QqJ&y<7Jtuxb7zER((@(+JnaH21G*+(x{dzEco!`2@?N z^GQ^@-`0@RT`EIQb1M=o@o<#2bH-h#cErt~PPD}u^2{{y>BzEupIQe*wkJ|H_Z1DT z<4Fl&!^m2j@Z+)0&o+Us(kHJw=&iMMYwV8?nZ6_Ntw`9hqQv=tjXF7^mdvaU%DAOL zxrn0W#Ml>JaIrc;MZ0AWxa4c#KEjBs&ZlRmG}kBww1me^quD-RthgSDGGt3N7Np-h zh6dOpu(5w`#(^Q$h^2HmznpExf(IlXw$_7kHOqi-ncf>G-lY`7lj;7L)t(=hb~J)b zRMODw?Y@E~N%@}}0j8t7z-nbRU`i=)tx3cPf%~m2R*Xbp(|$M|pBv%bi!}>?IMX}K z;{~kSh z)Q2+>Q$8t=KFTt{N+t`fO&`*#s=8uB{W@q!e?O&`pjU#uAR7e=y{p}^o3B&H9RS!4 z)X2v^bX6n&DlCgWDe%JjX*Y?=$l-;>oBaE?m+zGNZ9>dVCYT`+vN7wSoX*{^)|+2H zFonkF15)<|r0tRvQPx{QCyht4#~;&+tAUc1eb^NZzsn0BxMNSiAHn$u>Z>g*sWP&K zBFd{p#uc}nj)UnNG{qEdv^JBam5Z*jUad*PD&Tc>4`* zmG2e#k`L&~eZ_UNj(dC>q=&q}t@7*dudP{UNv%@b1-<1LLIS&n)(r_{)7}q6$C3Tz zSe2%?QYk*WmudQ|=RwOYw@>P`kZH5_V64=Dc$R2~NoEPLxid*;l}#tpw$WRcZM0tA zmUhZsFRjW7SN^M$LDiU!68QK?$ifcA1EYT0^Ccu@`ljs)_kvDZ9$H=L<-A{VG z-t722dgoApAL<9)Quq3hv`V25)P(1W%Rl_#^_OqzNY;K1&+6{B?Mxr!dYJ}3p%^XF6=OKg-q(eY7x zeR0w&of0`ATd~t)8psaUoEQ`l?WVJ;j3&!Lr9MqwF-^xlKtQP89I z$PUY*cCXRZLY8w(>tTp~-GNWL?=^oG1AZa~$Y!0ny>NNqeB0Jq*9BQN4&?%*sc09! z3n7oYtF{((v4*PyKq0_*8OtWDh?T=EoXxvBZg#spc_Xj@NwkU3wN*2%aci5)EKLe= zb&#~RCr_wA=DuVZQ*Ggv^UtyEF`b-ytIiY6E^+}_dByorM=l4NW!~tXWjHD|RjI}2 zHa9=4CTLWfv+cVB7$)Pbkrp=Y!xyKby^FZtQYTiv=^}o$2Fx7BAIi+xA~- zy{auMKY)Arb&g07SWrg6GnF+pFwBxO{6x49H+Sz z4cl&KuUhsiK;I%R(E~W)MYWuQGGlf4XKHWh`dFYCq~#962nHTxH4zdygIrbEaYD`# zIi6=E+a}(<&okcAgXzPG%0q$oeJRslgf&|oHI~B0sj)Q->EKnRZX7x>#dq>xDfYHi zp7NA1haM^_$x&} z!i=0f6nvG`148-rYI);dP$J~+^S>?H) zHCJ7$uAj&9#1RAmWtrNvXg!?dN3O~;dbXR;%h$X1#3%&-SV=c<#fnd*79U4>yR5Ws zEd@5t+(d6~46d1Iy0AVzAoYXyNxz&t*a}T_mh}Pvi&|;6g7EZisYLH!zaIzunQOdC zCzfcFI7NztT**NvTv_`Rh5|oe~E(@2=biuz33ZJDC10^?7Y%v1oaX*II^Qj z0Vxb@4SAAP(Ba#nwBlE0*TC!H0BmiL0arhOX_#S!R_A6{S?O-`JYbRS2eHe==~Ag< zKl%*LMTny^%&xAc&C*!wSP(hD9cXiH%s;25ormlG9kxxpJnIau*WS#CiYe-71>O+=h8z$6sC!wz){*yo+};v zKb4&YP#xRWt#Nk^?he7--QC>-1b26Lx8P22cY?bFcY+0XcX*t0UvB=xtN&F_Q^kfV z_V~J~xw?9FUUfK#b?@@qvdpeclLw zU$Xebi0U%zxb%t>X*2}uUB6VdYZ8W0-Q#*N|KPi%Pr+2v_L?neh$*Uz#lCal4Ny9Rz7dr%6A)1wc+c&kg(e%v@{`>oPVsmCh*jW(`G4uhIrA}>B=dr z8V^vuNCNa~$7)aLjDqbCSdh{=qC~MW0{z$6YFy?D7|!i)diJ3ng=m^5&;i^vhgZ5Tf<|9yd*0-d%=BS9rp`4P-HmGt+`kJgBdH_Fc`lYU z#mQ}T#}mR^aGYl6;>myn^(5;>8-68)%zqm&um7yD78NGx#J38gf7}1X{^u3;pLtX# zeLFLKgSY6Iw-PH*{=3B5cU2JK_ts-mYS{Hdp-ScHegn$=aWI-(P> zNRGeg^?kG@=Kgj|9vc_wi@fmRAy)gtM+&PC`+3pj=P=g3XS;h4vL!%YmmwA5k&8Ln zQ^r)PvAD<2=Q$LnnjSF#hEQlPbbSf|VLXY$5g<7R`X8HoH3i4(aJxX0)6Y*D#bvmB z#V7Q$ObiEM65$Tu%2}CwOF)&XPfITsRdUY?N&J|HKJu><5tWgc20}vmdE^L-ljNxd zi-6p=|4d|~Ot;k9GQ#iWu%ByV(q6%iJ)OwY2v|VZ_(<%EYOXE^MI3g86v|37Opsr2 z6i6PokUnayrEzk<3ieS^<1*JQrXAW0*UYrVw0UTEBE*VRX>l`u6q~u*ysp9-4L7tuJezwno%O0$aK{U;dZaqT*<8rF*^Km(?Elw-E%3f>+7sFcZ{W+bl zYdUlr&5c-)@Cu$};BMDfeU#Mg7x@TXE=b;l?qjcB^Nb9wr zdi&vSi5_49EuX zO85C~xz+&kUo8VVo0`4dOKtQG|6T@sEAuTDgtsz3tBV6rT-KUD1L`A$Mj^+{J{~*s z%@u*e3R4oNY(Ti{a3)v4OK_gNTaQj3{a;U55o@e^>)|C|L$-NZ=)I{ zq;iCJ2LZAj0q_WHG)g_;d~tlcmN}zNj^F4As78@+*%?xn5@@Z#yxA6%NEHysO4l72 zADwFT#X__OnsM0MkABIBOo+98Q^r(yeEkKAS~s&)X;+^5mXIF+Dt zRU4GC2$nz#=d2o>ErE=AikOMq%af8T5@A(^%Xy|=$K{$6(3ZKF&{k1?8FizWOp)pK%z?GE6zI{B4*%@qVYr#QnF_5Q^pzid^Wr}iHQ^8Ie()+E z$T3t=)Q3rT58cwz2>@OL9vxEABDexgVo+8bplmgIj-}@WkAIp*DkneNb=VD|~h<)3Gp#{&JtG z-71JYAulzZMzzWTYYle*J)N+7AlG~igCp$06CE?>3q{n<0tHgdvvtAkD_MM`>T(h& zZ3r4gtbv28q4fyEA+eu|DZn((J~AY;o1PehuFUrPnD=z!d95@g$0<2hpe7NV$YE5# zxP4`IchMU&QJ<1>v4}p94aBQPr(MXY&RlOJfIuwN7yuOF9VV%hsW7hM-KTL9CQu@l z&zs_73?ss-t4C+rbLQLsDH0gX+_DG3F>Oyy{XhV&j<tbNPfKwy}sm zs{g`hmT1?3i+!1W%t>aKvuHkN$+}uY{c);gVmq-7^aiwz`AGv)!^mlY<>WNscHLk% znQHr5zC~K8!I`qsEXK3dEFGBsF0$$C_AMa%WdKuNh&$IkFs-yY=8b$yx~aQDb}63O zbqVpBG2*zdy|s=+noR&c;Dfuw@HUD@kCjBL7Eft35)sp+li~blI548!U0K~JrpuNO z5YxOzI)w;_N^TlmQx!RJpj_^*Sof=K!BAqfV_IF=2_xjZ7}_kAQ`q0K!iSU`pp$=w zex&xZp5e)r=}Y}^>Ia62Mo`(?6if^nb@SC_l?(bA6zYbNJ~h-frtp-}FaLFX9~R@( z51erRXDavhR$@gse#~L^y7b(BUGTNS0^2~lbru@fgpgFP8JP-$IFvGuKiuMnL&}=_uuN_O zL}mRis3{@)$gCi<07pB_ktEn$xKBX;d`QG1&~B|k1^}pk%QpKLgHKS5Uq)0|N>=ov zrBS)&q1Bd1(o1C#`IX)}o6RDzqqDV-bYZKrdyEw8=BR1)D*Sl_q%c-EWr!#O(-%0zcGqd+5t zK6#Cr+^~WceTk&9QMCr0>C2qa*~+qEL3xQCaP^i7r39`K;BhZ9hQ-$*lWO7dN6yyTe*)+C1vM z5f{bXpswhli={T>ffnnB?}=(dcNN7`3=+h+<8AIZ1q4ND4LnDFr z2KL19y7nzDxp6*3K(Cb=O$_AQ!&L$!?>tDie+hPUtq&ur?^~0I z9Z3T1fenYqB$BkzOrqPVm^XnGai6OdpoyGlNoIc6tQb$n-d?|_cje7n}8+L{IQAiLt zr}M-Q#t1J_^JYHy)%X;u+H8jFxTM)pj;=}|pP>{5yia_ElCOESHkfiCcp;A*sSANQ z7gkfWy1`}M{yNDN1F{nlf)EhkE_g=9k7fKu9gzVMKp@b?i_H}%IkeN^)~*0y&8Fzw zXXDDvr2`TNqjL;lQyYex+v#hsh6d43`Z8r>%kVl@FCZ-R^@k-94L)sm^$`ASs9~u3 zBYz%#1`2?2{xpa?X3T2Chy`ssldcS7Ya2juu5J;IP9L0#X5Y}qCAmw&k;K5QJms6z zBvf!y7O(I2J||oN9`Z<|I9C3oo42Q_LX=?f{FWe^KJ+1;fjYcZV#R`(K6i|2u(=*_ z{K}t%*ZgYN9jVhCK{*QvW4XGPbADpo`}7r)C-jNN#8VIVV0{JRQ}Ebz&ADgy0RuT# zP6v%HsYmXM1a~1#;`Nh!%6|O;A~2sOQ~7=GSZmP7(woI22iZpm(gDx|UzluU?q|L! z$9OO2j|afBpAy!#fiEtJ!x_{SXZRzFL(`Z)P8T&jQ{6W1i|{&`w@hJWOi-RdfcWnr zW74|uH$Hxf-%{osSu26~029EJN+}=)=+kIYjE@vY<mJi$^Px&w^W@wpxWSqx{OV zkFNvpB?>r1J<_U^#D}BZj8m7)r~5}JIj%8(ieweG9Wplt#TS{!sLdk+GA)qi(H2Bz zU?b{O7V)`r2aWQ`1T*-8jBVuZ2!7YS-Jtthq>-az+Q|NtJawu2_ z?uC1xxH%v(C?}uB2(S4%itT){UX++;q6xihMgw$;8+OflbfWt!K1AreLc-8&rPMswQ|r^pk>6{NsHnz2ZOUWkNZ^C1Y}>uz=7hP0B_ zV9N$~)>l%3*vFs9ah!oDl3G(*=Z&tDKwF`S5l-$FJq8K)6DWE>5d#O}lP{l=6^j)= zu(z~ISJp}G8?nSqfqn)7wu#{nS5{T`R|9i43Q zhG}>TrA-{5(B|AO(+Enr`by2ae|;|uR;h{lscvN=}tDOow*EjNR#WFHoPCp zWz!zKZ!ow^r$yvDc>$~Pd}htd)5sgbYt)FoEI@!zXoYpj?ba60Th^Ya;GGH;)i)c= z6n|Yf7ZftTmq>D_P|UzS6C$M&Po|$O=kj34QT0)SgD6#u+TfA&Sl#$IMNuP)w%mstjQ0 z+&;32USGd&%zmhR2kjvEBcvD z7RkQg>-)lz#8?60o_dT)f$)QVMLsyFX~6)HZF~yCh@+pv1PDPlOL!?xCEwVySmF*O zwa8|BHZ7t9eg$@$jK%5f8&r_e{lzj+qP-L z(HajQL55vKF!$KCn_AO50lW-=B4c25SqX_B?F4jl7L`W1{D=W3m)dv=Fsr22?Byq8 zePAo!jjUbOO(os~r_jUe%XV@!e7+Tkvb$I3CyX_hiHZr_@;RWi@<_KI71d-{I(4FhMB6S&DxyXzWULO|We z;935V!Y`g70&`b}j-6j9zfiOHJ2bR;-9X43LPW88grbe3k?vOp`Y&?$iJ7sh zD0cNgh_i}_-RZsgs}6Zsf9@j0+Ypp3pLq`w66I3FhaiVBD|Zul<)T-XFq5)CsQ32P zc0X-M)q>p?Xo2EJZ#0Ems7VOG$E~;EGw6g#KibE$E*hv1?BffSC>@@z=4L0!7+rvs z7N!*{30Y4J!Fhn(g`zG<-%gWSZYK<9ChUhGJbsu6^aL8a0So|JhizMLS4ec4`0B1P zl(PUvwjx5cPK&@;m*BJcBK>p>=G7Li5E9Vj!EmaQ&!41@oL`+1bOsH!obJOHjMC*Cve zi#AmhnB~q&8qAwF|3ToEWr(sieV}vLuxy%mGXq79Ci^pt)p1=TE__}{jx8xO4kIx; za!tt4(`Ij-biEfswHR zWNMSS=qWPCKG}>KhHR*^KAtn74+RG|;hg6?WR96XbnLVR>ER&Dc#?qZbv5I=(DTo9 zmYSDEJ? z25@f(8FcO3feYK?90ZmxvYFL$2gGErvH`BgT)O(a$f^8XTV+DOZT~XZRx{YPpEi%N z+;DD)DI@HFb`nZ3HMjdKoMACqSpntag-FN8>}$pcOV&Jc2OidAIweNdYq&`k<&hcB zd#soFjzXUAy=sPOjj$OFx=NAvMHt`Q69MsVU;{3-hJohea9p=O3Ky<+R}3IL&&fmy z-=aoA`2;{;kbEzXwhZ9fsu);>4%0b)S=A9D0e_0Dr9RzjRm6p-l5&b+OvRpSR79$1 zRm+xb9ie!!DU45Mt&`WIlr-|+byP9&FX6aZgl6ISu?eFg$Z;t=khrlp7VUOk!THz? z*RlgfG;bDRClW9DHr=|fvru!*Qfk1^7c}>FQ(m1jv*vXFVJeju@mUE0e|^mhY5Rud z`wbb+3Y=_vrLI*o?N@cv&_xFUZe0T=*WO8g315z?r98EjOD1hEZzx_7$sK*WzOAP6Xz&<)Bim_7R}ddor|!^6%qfaE z3qO9@Kom41trQuF+JGroTCFLE2R!U~=u%O9-uQ6nhRZ*!Cp>RzN~@}t3GjpzBk1VN zPQeF{3eevet|>~3?T${vg+ymndua;1j8H<MgosJ%26at^O3xK%!wHo&qr9j=06 z*Uv$mwrVFgnmE*JbyYi+$K_)%fIseJWLw*CmE@L9s}h3{o#Ro#KhxZXoxC#U%__gT z)_=#s6*aJ3g?3H1YTUa=oOTNu(?En}wa?5MAmeLgFxJw3?8iG$0@|Azo7lT^g8Ejj z`{P@vJ%I;-U^G?Wt7wH}J*9)rG{6*&gqVsWBy#56{qe1}ms_~ndJ_O?-XeP2LQ%DL z6fpH-i?S!n%>$n*FP5Rq`IOUV8*Bl6q3vy!gN#FkV57u7wY}Va_AgG}E;_>7JPLyT z#y*bimAU$~Wp(p`O}?HMt1|OoUFr1?oK}Vhn1L{WltNIr4LyB4cHrWf85V57o-n1pO9%Z5Rtu;%L>pupx2W6ws>d5RohC=Oh}`r&XKz`vpg${mhX##T37a6| zuONca{O6JU58KHBTkoeJ$%aYC3GntI0G7rX4vARSnRkC&_^tdf>KnWIu!CUEwwk2x zmQtVhiokvDW}TPi#Z^?{DOy1$Nv93)!MhH4 z`IaMl+Fp7CPdqLZwL#T~q-9v;b&EQ2@5cN9Y2ll-VtF1w&=W54$1valevLcwQ3ek+0iwi?jXVyWJqjAKjI#s!L08I;%rTE^KHS|@GQ(_MK`bq2Cq&R zc$taD8`LK)%u=E-d}g7~9+JYCw0)TehCQAE;kpqtX7g5FR4+nW;`~q$GNl#S4$P0S zzbhmzrAQYBVD_h$ua%S?!9gsZwSm?qFgd5rlUPYW1KQinNZT`F){BgE{e+!INg0_9 zSRkClg>LzTZUpLNGJ6B|Q;{q)TO>~$+-V0`Sxi880g%|I_7d?rW~^Ge!JOmJO|`L> z>akE_Y{b}w`woti%s!nCxSEf^q1HnRI%DMUFmEXK@Rk*vb|}qhYu>GC9<79q@(H{r zJyzNc0K~td`kCW^)jyQGc3+fe1UOn#&Y}RDBNDx2{HOJ}mxYM>61goY?Wt?|zUI>6 z#HYH?cc0EYQV9mON-2S|WM=KDzPLeTdY|o6MgmQM@M+uKuygX3!jG{q%mVe(H|1Kj zdR!I-W+1ZR4ptMRU zp^dTYyO-oyR?`zn4R=X7g~1~71NR@#KbhL0`Cp;{4{FQk8l|D9OuwE#@=j9x^;GIa zZAFq6l^|rqMd%3e8KP$A5tR6rl#zH*IyyAlTJAn`he0ar%j^~#B=Dj&zaV**)A@=P zHeU0y8^!Jrs~yjR?)4B4E@f4%PKz!p1^S7H!bQv8t7Z z6yM|Mew>+fI2426Fy+D%f329Xy=R#UWEM`?z{U>#$DD;cs>m}064_&1@!DD3yy;X; zef`x4qm5fhI1;apoqna9iCUkXU|u1y>>mvfheN7@SB-@exDV}!LTp(M9bT@KNU;IC z%Tm%A{WrMZGztuvE;tU-VG!;w5z-aD0ca8mn(>#$L5d}2-P9g5KTrb>0z+~S-?Stv z+lek*rPf8i=7ttQcN8rTNss}nQ<$CnK>KW}yZmupH;B;i8>5(E7{UXn&LikJdRynb zf7@O;@&ktsI56pow%1VMnkV>*g60`YM+viC^ihHH@@?lFksuTSKzrd3&gZMGkOHgp zy#s&5)_b@J{aL4(6Q?Wde@+3ea2S!)1Vy8)hV!AH={Z=T*jCxxFZJ}fWn{}izC0zuDijJMR;V4F3p(*_D2(l`S*eRShk z0?7?_^9ZcX00QzrHfL=)hhVNF@3LXI5kr0=&^a91v;lX7_~yub!N0paG89!EmG5lh z4||5-4jq0FrRI?;%%KTC8p+q*h^D1|^i0xiB$%!xi4ECQjq?%5)x{kCAj#%O;SV>OBmCxT8m|O%MG!VOkQU_>y;?w*M_^~@^@V+T`H@0 zyiVhGoQHcv8tv-Y!0EgdZq|X{aKTKEJoSsi56fRe8Dl*{TwGM)ZEmK^ZoNlEXLO;9 zXNHg7CeNrAOs@$UW4ruR?{tW(;y;x)fY}IKP95==`y{*HQH)Rno}1?hEBj7Kp`~d- zl?^eBHNLIM>4!EcYq@X0E3Xqw<`ze_!Su49B@gOi`W(c|mU;U1&j6#I|KL%r^a*IxGc}Q6bNz zmpVGPl(u3fKbL}4#q`>$!@_^OrR*&ucwJ+m^{F-Obd8xH<KVK z$27-E{ED{72{GY<8+to3aRnlo9i0em2vfJ_98J5MUB}6^wzZ7?mir?bop``fcozME ztI2B{?nAB$$mYe19-{{-x{r5pX-qH52A9CniqSr^aC zRBn-u=j$pf=cP9`u_~V@VwB+%Ua&J__BY{gA%sJ?mg3Tj^>q)GsxnoIWi2}=3IBJcaM|Y9$ZMJ^>hQ3(U=t<@Ulh~O$g;3UbM<#VBZU8v_%g|}S zlkC!U@G4a7WL6Pim;6JC7WPRBJu>q@%Jr{U;mIdq&;bSNA)krwsPzy|pqQ?4I8`T} z#Kfj!XY%R{Ouge9{5LY!V9oDI<{Rd*Z+DgN?g5+v+-oMoa!pd$eOB%`Nx2MIvNvde zEKXXv^)#!oUV|1$6^usVb4Y_>B)^^&wVdMMGdlZv3rN?)e1oCAqXEaQY@)zmi8wnX z04If!i#Auq;@x~=DmBJU$`v{)w!Lds{Gg&tKn;ugh2!#KBf0yqc6yigd$)3P*h0L1 zp7^)OT-~L#Ia*TM&qJ>QpW#GaSHJ%Zgt_Q#Khy?^pd5wT2UdWl*`Q7iuf~e|2|y-&^dr_~O41|IfwP8U9lLOXYn_w!a#A{W^~Mhu^lP z|KX|s?fCqq{Oi2mH}?9aobQYB_9XXjl>gi2>lflLsrM)UR}ZaU$1y+5n_1%z5&tn0 z{*wN6_V0UY{gTf2RsFZp|4)al_pJ8`_`g}G2>0 zcpsMd8&HY+F9E-!6W>GLhraxVNKyVV@P_lWn__TPv~!9Tu?zyDW%efwo}e@}UDZ~jd|6!~My|7&)B zk9qGb{f&7R`(w;Me5UUS@BMGT3C&V}O!%K}xc7kf9-rR;7P&tL{7=Wvd%*h{gx>&m vqdx}xo=1U001A}zRun(hawh#{q}zVuLiv( diff --git a/.yarn/cache/eslint-config-airbnb-base-npm-15.0.0-802837dd26-38626bad2c.zip b/.yarn/cache/eslint-config-airbnb-base-npm-15.0.0-802837dd26-38626bad2c.zip new file mode 100644 index 0000000000000000000000000000000000000000..d8e7f9ea15f428a162d9fba2ca1cae4841193096 GIT binary patch literal 32110 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 O9x8A7HUJL4KK&nQ<9-JK literal 0 HcmV?d00001 diff --git a/.yarn/cache/eslint-config-airbnb-npm-18.2.1-19125926b3-ea11cd0006.zip b/.yarn/cache/eslint-config-airbnb-npm-18.2.1-19125926b3-ea11cd0006.zip deleted file mode 100644 index b570b9e811c2bb20b7af33fb747f244f2d793094..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 23967 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 diff --git a/.yarn/cache/eslint-config-airbnb-npm-19.0.4-a73150c84a-253178689c.zip b/.yarn/cache/eslint-config-airbnb-npm-19.0.4-a73150c84a-253178689c.zip new file mode 100644 index 0000000000000000000000000000000000000000..19b19d063e99be916654c0b15ed0ff67e87782dc GIT binary patch literal 26001 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 K=}h Date: Thu, 17 Nov 2022 14:54:26 +0000 Subject: [PATCH 2/3] Lint fixes --- .eslintrc.js | 1 + README.md | 2 +- .../EmbedConsentBanner/ConsentBanner.tsx | 6 +- .../EmbedConsentBanner/index.stories.tsx | 50 +++---- .../components/EmbedConsentBanner/index.tsx | 12 +- src/app/components/Heading/index.stories.tsx | 4 +- src/app/components/Heading/index.tsx | 8 +- src/app/components/Image/index.stories.tsx | 134 +++++++++-------- src/app/components/Image/index.test.tsx | 30 ++-- src/app/components/Image/index.tsx | 6 +- .../components/InlineLink/index.stories.tsx | 64 +++++---- src/app/components/InlineLink/index.tsx | 8 +- .../components/Paragraph/index.stories.tsx | 4 +- src/app/components/Paragraph/index.tsx | 50 +++---- src/app/components/Text/index.stories.tsx | 4 +- .../ThemeProvider/__mocks__/index.tsx | 4 +- .../ThemeProvider/withThemeProvider.tsx | 20 ++- src/app/components/icons/index.tsx | 76 +++++----- .../react-testing-library-with-providers.tsx | 8 +- .../ServiceContext/__mocks__/index.tsx | 6 +- .../contexts/ServiceContext/index.test.tsx | 12 +- src/app/contexts/ServiceContext/index.tsx | 6 +- .../ATIAnalytics/beacon/index.test.js | 11 +- .../ATIAnalytics/canonical/index.test.jsx | 5 +- .../containers/ATIAnalytics/index.test.jsx | 108 +++++--------- .../params/article/buildParams.test.js | 19 ++- .../params/cpsAssetPage/buildParams.test.js | 19 ++- .../ATIAnalytics/params/index.test.js | 19 ++- .../params/indexPage/buildParams.test.js | 19 ++- .../params/mostReadPage/buildParams.test.js | 19 ++- .../mostWatchedPage/buildParams.test.js | 19 ++- .../params/topicPage/buildParams.test.js | 19 ++- .../params/tvRadioPage/buildParams.test.js | 19 ++- .../ChartbeatAnalytics/utils/index.test.js | 16 ++- .../ConsentBanner/Banner/getDataAttribute.js | 6 +- src/app/legacy/containers/Text/index.jsx | 4 +- .../src/buildRTLSubstories.test.js | 3 +- src/app/models/propTypes/general/index.js | 4 +- .../models/propTypes/general/index.test.js | 5 +- .../ArticlePage/Byline/index.stories.tsx | 136 ++++++++++-------- src/app/pages/ArticlePage/Byline/index.tsx | 4 +- .../Curation/Subhead/index.stories.tsx | 8 +- .../TopicPage/Curation/Subhead/index.test.tsx | 14 +- .../TopicPage/Curation/Subhead/index.tsx | 4 +- .../HierarchicalGrid/index.stories.tsx | 4 +- .../TopicPage/HierarchicalGrid/index.tsx | 4 +- .../blocks/include/index.test.js | 11 +- 47 files changed, 559 insertions(+), 455 deletions(-) diff --git a/.eslintrc.js b/.eslintrc.js index 90352719ca8..e82086ff96f 100644 --- a/.eslintrc.js +++ b/.eslintrc.js @@ -42,6 +42,7 @@ module.exports = { ], 'import/extensions': [1, { json: 'ignorePackages' }], 'jsx-a11y/no-redundant-roles': 'off', + 'default-param-last': 'off', }, settings: { 'import/resolver': { diff --git a/README.md b/README.md index a5b1574852d..d7de8d91d0d 100644 --- a/README.md +++ b/README.md @@ -171,7 +171,7 @@ Install Node. [https://nodejs.org/en/](https://nodejs.org/en/). We use the versi nvm use ``` -#### Install Yarn +### Install Yarn The Simorgh project uses Yarn for package management. It is recommended to install Yarn through the npm package manager, which comes bundled with Node.js when you install it on your system. To install Yarn, run this command: diff --git a/src/app/components/EmbedConsentBanner/ConsentBanner.tsx b/src/app/components/EmbedConsentBanner/ConsentBanner.tsx index 183fdb01817..427004a94ca 100644 --- a/src/app/components/EmbedConsentBanner/ConsentBanner.tsx +++ b/src/app/components/EmbedConsentBanner/ConsentBanner.tsx @@ -157,11 +157,11 @@ type ConsentBannerContentProps = { id?: string; }; -const ConsentBanner = ({ +function ConsentBanner({ provider, clickHandler, id, -}: ConsentBannerContentProps) => { +}: ConsentBannerContentProps) { const { externalLinkText, translations } = useContext(ServiceContext); const consentTranslations = getTranslations( @@ -202,6 +202,6 @@ const ConsentBanner = ({ ); -}; +} export default ConsentBanner; diff --git a/src/app/components/EmbedConsentBanner/index.stories.tsx b/src/app/components/EmbedConsentBanner/index.stories.tsx index 5f1336e38d8..50c1c200e56 100644 --- a/src/app/components/EmbedConsentBanner/index.stories.tsx +++ b/src/app/components/EmbedConsentBanner/index.stories.tsx @@ -12,9 +12,11 @@ import { } from '.'; import ThemeProvider from '../ThemeProvider'; -const BackgroundColorWrapper = ({ children }: PropsWithChildren) => ( -

{children}
-); +function BackgroundColorWrapper({ children }: PropsWithChildren) { + return ( +
{children}
+ ); +} interface Props { service: Services; @@ -23,12 +25,12 @@ interface Props { provider: ConsentBannerProviders; } -const Component = ({ +function Component({ service = 'news', variant, isAmp, provider = 'youtube', -}: Props) => { +}: Props) { const EmbedBanner = !isAmp ? EmbedConsentBannerCanonical : EmbedConsentBannerAmp; @@ -44,7 +46,7 @@ const Component = ({ ); -}; +} export default { title: 'Containers/Social Embed/Consent Banner', @@ -52,21 +54,21 @@ export default { parameters: { chromatic: { disable: true } }, }; -export const CanonicalYoutube = (props: Props) => ( - -); -export const CanonicalYoutubeMundo = (props: Props) => ( - -); -export const AmpYoutube = (props: Props) => ( - -); -export const CanonicalTikTok = (props: Props) => ( - -); -export const CanonicalTikTokMundo = (props: Props) => ( - -); -export const AmpTikTok = (props: Props) => ( - -); +export function CanonicalYoutube(props: Props) { + return ; +} +export function CanonicalYoutubeMundo(props: Props) { + return ; +} +export function AmpYoutube(props: Props) { + return ; +} +export function CanonicalTikTok(props: Props) { + return ; +} +export function CanonicalTikTokMundo(props: Props) { + return ; +} +export function AmpTikTok(props: Props) { + return ; +} diff --git a/src/app/components/EmbedConsentBanner/index.tsx b/src/app/components/EmbedConsentBanner/index.tsx index 636d82a093b..e38ebfaee0b 100644 --- a/src/app/components/EmbedConsentBanner/index.tsx +++ b/src/app/components/EmbedConsentBanner/index.tsx @@ -23,11 +23,11 @@ type ConsentBannerProps = { id?: string; }; -const EmbedConsentBannerAmp = ({ +function EmbedConsentBannerAmp({ provider, id, children, -}: PropsWithChildren) => { +}: PropsWithChildren) { if (!CONSENT_BANNER_PROVIDERS.includes(provider)) return children as JSX.Element; @@ -47,12 +47,12 @@ const EmbedConsentBannerAmp = ({ ); -}; +} -const EmbedConsentBannerCanonical = ({ +function EmbedConsentBannerCanonical({ provider, children, -}: PropsWithChildren>) => { +}: PropsWithChildren>) { const [consented, setConsented] = useState(false); const handleClickTracking = useClickTrackerHandler( @@ -75,6 +75,6 @@ const EmbedConsentBannerCanonical = ({ }} /> ); -}; +} export { EmbedConsentBannerCanonical, EmbedConsentBannerAmp }; diff --git a/src/app/components/Heading/index.stories.tsx b/src/app/components/Heading/index.stories.tsx index df1c37ebda3..a8059a01e92 100644 --- a/src/app/components/Heading/index.stories.tsx +++ b/src/app/components/Heading/index.stories.tsx @@ -15,7 +15,7 @@ interface Props { const EMPTY_OPTION = '--'; -const HeadingStory = ({ service, variant, text }: Props) => { +function HeadingStory({ service, variant, text }: Props) { const selectedLevel = select( 'level', { @@ -82,7 +82,7 @@ const HeadingStory = ({ service, variant, text }: Props) => { ); -}; +} export default { title: 'New Components/Heading', diff --git a/src/app/components/Heading/index.tsx b/src/app/components/Heading/index.tsx index 1d3c9a950e0..f2b00ab682a 100644 --- a/src/app/components/Heading/index.tsx +++ b/src/app/components/Heading/index.tsx @@ -1,6 +1,6 @@ /** @jsx jsx */ -import React, { FC, HTMLAttributes } from 'react'; +import React, { HTMLAttributes } from 'react'; import { jsx } from '@emotion/react'; import { GelFontSize, FontVariant } from '../../models/types/theming'; @@ -30,14 +30,14 @@ const sizes: Sizes = { h4: 'greatPrimer', }; -const Heading: FC = ({ +function Heading({ children, className, fontVariant = 'sansBold', level, size, ...htmlAttributes -}: Props) => { +}: Props) { const element: Element = `h${level}`; return ( @@ -62,6 +62,6 @@ const Heading: FC = ({ {children} ); -}; +} export default Heading; diff --git a/src/app/components/Image/index.stories.tsx b/src/app/components/Image/index.stories.tsx index 5765ec25c22..8f92e58bb94 100644 --- a/src/app/components/Image/index.stories.tsx +++ b/src/app/components/Image/index.stories.tsx @@ -4,72 +4,84 @@ import AmpDecorator from '../../../../.storybook/helpers/ampDecorator'; import ThemeProvider from '../ThemeProvider'; import Image from '.'; -export const BasicImage = () => ( - - A penguin stands on an ice floe - -); +export function BasicImage() { + return ( + + A penguin stands on an ice floe + + ); +} -export const ResponsiveImage = () => ( - - A penguin stands on an ice floe - -); +export function ResponsiveImage() { + return ( + + A penguin stands on an ice floe + + ); +} -export const ResponsiveWebPWithJpegFallback = () => ( - - A penguin stands on an ice floe - -); +export function ResponsiveWebPWithJpegFallback() { + return ( + + A penguin stands on an ice floe + + ); +} -export const BasicAMPImage = () => ( - - A penguin stands on an ice floe - -); +export function BasicAMPImage() { + return ( + + A penguin stands on an ice floe + + ); +} -export const ResponsiveAMPImage = () => ( - - A penguin stands on an ice floe - -); +export function ResponsiveAMPImage() { + return ( + + A penguin stands on an ice floe + + ); +} -export const AMPWebPWithJpegFallback = () => ( - - A penguin stands on an ice floe - -); +export function AMPWebPWithJpegFallback() { + return ( + + A penguin stands on an ice floe + + ); +} BasicAMPImage.decorators = [AmpDecorator]; ResponsiveAMPImage.decorators = [AmpDecorator]; diff --git a/src/app/components/Image/index.test.tsx b/src/app/components/Image/index.test.tsx index 63391b9f4b1..1ce9f2ae0d0 100644 --- a/src/app/components/Image/index.test.tsx +++ b/src/app/components/Image/index.test.tsx @@ -15,20 +15,22 @@ const removeStyles = (el: HTMLElement) => { return dom.window.document.body.firstChild; }; -const Fixture = ({ ...props }) => ( - Test image alt text -); +function Fixture({ ...props }) { + return ( + Test image alt text + ); +} describe('Image - Canonical', () => { it('should preload when preload is true', async () => { diff --git a/src/app/components/Image/index.tsx b/src/app/components/Image/index.tsx index 2f456a96bb7..41c4304f734 100644 --- a/src/app/components/Image/index.tsx +++ b/src/app/components/Image/index.tsx @@ -31,7 +31,7 @@ const getLegacyBrowserAspectRatio = (x: number, y: number) => .toString() .concat('%'); -const Image = ({ +function Image({ alt, aspectRatio, attribution, @@ -48,7 +48,7 @@ const Image = ({ sizes, src, width, -}: PropsWithChildren) => { +}: PropsWithChildren) { const [isLoaded, setIsLoaded] = useState(false); const showPlaceholder = placeholder && !isLoaded; const hasDimensions = width && height; @@ -153,6 +153,6 @@ const Image = ({ ); -}; +} export default Image; diff --git a/src/app/components/InlineLink/index.stories.tsx b/src/app/components/InlineLink/index.stories.tsx index 08f972f65a2..f695e57de12 100644 --- a/src/app/components/InlineLink/index.stories.tsx +++ b/src/app/components/InlineLink/index.stories.tsx @@ -15,49 +15,57 @@ interface Props { text: string; } -const Providers = ({ children, service, variant }: Omit) => ( - - - {children} - - -); +function Providers({ children, service, variant }: Omit) { + return ( + + + {children} + + + ); +} -export const InternalInlineLink = ({ +export function InternalInlineLink({ service, variant, text, -}: Omit) => ( - - - -); +}: Omit) { + return ( + + + + ); +} -export const ExternalInlineLink = ({ +export function ExternalInlineLink({ service, variant, text, -}: Omit) => ( - - - -); +}: Omit) { + return ( + + + + ); +} -export const InlineLinkWithTypographyStyles = ({ +export function InlineLinkWithTypographyStyles({ service, variant, text, -}: Omit) => ( - - - -); +}: Omit) { + return ( + + + + ); +} -export const InlineLinkInsideText = ({ +export function InlineLinkInsideText({ service, variant, text, -}: Omit) => { +}: Omit) { const words = text.split(' '); const middleIndex = Math.ceil(words.length / 2) - 1; const middleWord = words[middleIndex]; @@ -73,7 +81,7 @@ export const InlineLinkInsideText = ({ ); -}; +} export default { title: 'New Components/InlineLink', diff --git a/src/app/components/InlineLink/index.tsx b/src/app/components/InlineLink/index.tsx index 783b5eaa4ab..cce319780ea 100644 --- a/src/app/components/InlineLink/index.tsx +++ b/src/app/components/InlineLink/index.tsx @@ -1,6 +1,6 @@ /** @jsx jsx */ -import { useContext, FC, HTMLAttributes } from 'react'; +import { useContext, HTMLAttributes } from 'react'; import { jsx, Theme } from '@emotion/react'; import Url from 'url-parse'; import { Link as ClientSideLink } from 'react-router-dom'; @@ -38,7 +38,7 @@ const parseLocation = (location: string) => end: false, }).exec(location); -const InlineLink: FC = ({ +function InlineLink({ allowCSR = false, className, fontVariant, @@ -46,7 +46,7 @@ const InlineLink: FC = ({ text, to, ...htmlAttributes -}: Props) => { +}: Props) { const { externalLinkText } = useContext(ServiceContext); const { hostname } = new Url(to); const isExternalLink = !bbcDomains.some(bbcDomain => hostname === bbcDomain); @@ -92,6 +92,6 @@ const InlineLink: FC = ({ {text} ); -}; +} export default InlineLink; diff --git a/src/app/components/Paragraph/index.stories.tsx b/src/app/components/Paragraph/index.stories.tsx index a4e906c119e..7a067e8cd66 100644 --- a/src/app/components/Paragraph/index.stories.tsx +++ b/src/app/components/Paragraph/index.stories.tsx @@ -15,7 +15,7 @@ interface Props { const EMPTY_OPTION = '--'; -const ParagraphStory = ({ service, variant, text }: Props) => { +function ParagraphStory({ service, variant, text }: Props) { const selectedFontVariant = select( 'fontVariant', { @@ -71,7 +71,7 @@ const ParagraphStory = ({ service, variant, text }: Props) => { ); -}; +} export default { title: 'New Components/Paragraph', diff --git a/src/app/components/Paragraph/index.tsx b/src/app/components/Paragraph/index.tsx index 879bbaa6958..420e58da5bb 100644 --- a/src/app/components/Paragraph/index.tsx +++ b/src/app/components/Paragraph/index.tsx @@ -1,6 +1,6 @@ /** @jsx jsx */ -import React, { FC, HTMLAttributes } from 'react'; +import React, { HTMLAttributes } from 'react'; import { jsx } from '@emotion/react'; import { FontVariant, GelFontSize } from '../../models/types/theming'; @@ -13,33 +13,35 @@ interface Props extends HTMLAttributes { size?: GelFontSize; } -const Paragraph: FC = ({ +function Paragraph({ children, className, fontVariant, size, ...htmlAttributes -}: Props) => ( - - {children} - -); +}: Props) { + return ( + + {children} + + ); +} export default Paragraph; diff --git a/src/app/components/Text/index.stories.tsx b/src/app/components/Text/index.stories.tsx index 9dbbfd834d7..51bc55670c4 100644 --- a/src/app/components/Text/index.stories.tsx +++ b/src/app/components/Text/index.stories.tsx @@ -15,7 +15,7 @@ interface Props { const EMPTY_OPTION = '--'; -const TextStory = ({ service, variant, text }: Props) => { +function TextStory({ service, variant, text }: Props) { const selectedFontVariant = select( 'fontVariant', { @@ -72,7 +72,7 @@ const TextStory = ({ service, variant, text }: Props) => { ); -}; +} export default { title: 'New Components/Text', diff --git a/src/app/components/ThemeProvider/__mocks__/index.tsx b/src/app/components/ThemeProvider/__mocks__/index.tsx index e51131713a5..c5a4736d2f4 100644 --- a/src/app/components/ThemeProvider/__mocks__/index.tsx +++ b/src/app/components/ThemeProvider/__mocks__/index.tsx @@ -120,7 +120,7 @@ interface Props { variant: Variants; } -const ThemeProvider = ({ children, service, ...rest }: Props) => { +function ThemeProvider({ children, service, ...rest }: Props) { const variant = rest.variant || defaultServiceVariants[service]; const ThemeProviderSynchronous = variant === 'default' || !variant @@ -128,6 +128,6 @@ const ThemeProvider = ({ children, service, ...rest }: Props) => { : themeProviders[service][variant]; return {children}; -}; +} export default ThemeProvider; diff --git a/src/app/components/ThemeProvider/withThemeProvider.tsx b/src/app/components/ThemeProvider/withThemeProvider.tsx index 072a4f173b3..88d2dd66b9a 100644 --- a/src/app/components/ThemeProvider/withThemeProvider.tsx +++ b/src/app/components/ThemeProvider/withThemeProvider.tsx @@ -1,4 +1,4 @@ -import React from 'react'; +import React, { PropsWithChildren } from 'react'; import { Global, ThemeProvider as EmotionThemeProvider, @@ -119,10 +119,6 @@ import { import { BrandPalette, Typography } from '../../models/types/theming'; -type Props = { - children: React.ReactNode; -}; - const withThemeProvider = ({ typography, palette: brandPalette, @@ -257,12 +253,14 @@ const withThemeProvider = ({ }, }; - const ThemeProvider: React.FC = ({ children }) => ( - - - {children} - - ); + function ThemeProvider({ children }: PropsWithChildren) { + return ( + + + {children} + + ); + } return ThemeProvider; }; diff --git a/src/app/components/icons/index.tsx b/src/app/components/icons/index.tsx index 5d3cb2840d3..e89f733b29c 100644 --- a/src/app/components/icons/index.tsx +++ b/src/app/components/icons/index.tsx @@ -1,38 +1,44 @@ import React from 'react'; -export const Ellipsis = () => ( - -); -export const LeftChevron = ({ className }: { className?: string }) => ( - -); +export function Ellipsis() { + return ( + + ); +} +export function LeftChevron({ className }: { className?: string }) { + return ( + + ); +} -export const RightChevron = ({ className }: { className?: string }) => ( - -); +export function RightChevron({ className }: { className?: string }) { + return ( + + ); +} diff --git a/src/app/components/react-testing-library-with-providers.tsx b/src/app/components/react-testing-library-with-providers.tsx index 17cff90b26c..ef76ac6c747 100644 --- a/src/app/components/react-testing-library-with-providers.tsx +++ b/src/app/components/react-testing-library-with-providers.tsx @@ -1,4 +1,4 @@ -import React, { FC, ReactElement } from 'react'; +import React, { ReactElement } from 'react'; import { render, RenderOptions } from '@testing-library/react'; import { ServiceContextProvider } from '../contexts/ServiceContext'; @@ -26,7 +26,7 @@ interface Props { // Uses a custom render so consumers don't need to wrap test fixtures in context and theme providers in every test suite // https://testing-library.com/docs/react-testing-library/setup/#custom-render -const AllTheProviders: FC = ({ +function AllTheProviders({ children, isAmp = false, pageData = pageDataFixture, @@ -36,7 +36,7 @@ const AllTheProviders: FC = ({ toggles = {}, variant = 'default', showAdsBasedOnLocation = false, -}: Props) => { +}: Props) { return ( @@ -57,7 +57,7 @@ const AllTheProviders: FC = ({ ); -}; +} const customRender = ( ui: ReactElement, diff --git a/src/app/contexts/ServiceContext/__mocks__/index.tsx b/src/app/contexts/ServiceContext/__mocks__/index.tsx index 53198540ae8..e55e16efa8d 100644 --- a/src/app/contexts/ServiceContext/__mocks__/index.tsx +++ b/src/app/contexts/ServiceContext/__mocks__/index.tsx @@ -17,12 +17,12 @@ interface Props { * using service contexts. */ export const ServiceContext = React.createContext({}); -export const ServiceContextProvider = ({ +export function ServiceContextProvider({ children, pageLang, service, variant, -}: PropsWithChildren) => { +}: PropsWithChildren) { const dataKey: Variants = getLangOverride({ service, pageLang }) || getVariant({ service, variant }); return ( @@ -30,7 +30,7 @@ export const ServiceContextProvider = ({ {children} ); -}; +} ServiceContextProvider.propTypes = { children: node.isRequired, service: string.isRequired, diff --git a/src/app/contexts/ServiceContext/index.test.tsx b/src/app/contexts/ServiceContext/index.test.tsx index c833c416489..99bf8706639 100644 --- a/src/app/contexts/ServiceContext/index.test.tsx +++ b/src/app/contexts/ServiceContext/index.test.tsx @@ -19,11 +19,11 @@ describe('ServiceContextProvider', () => { describe('should load hydrated service context', () => { const testForServiceAndVariant = (service: Services, variant: Variants) => { it(`should have a brand name for ${service} and variant ${variant}`, async () => { - const Component = () => { + function Component() { const { brandName } = useContext(ServiceContext); return {brandName}; - }; + } const serviceContextProps = { service, @@ -56,11 +56,11 @@ describe('ServiceContextProvider', () => { }); it(`should return null for foobar service`, async () => { - const Component = () => { + function Component() { const { brandName } = useContext(ServiceContext); return {brandName}; - }; + } const { container } = render( // @ts-expect-error test passing invalid service @@ -119,7 +119,7 @@ describe('ServiceContextProvider', () => { assertionValue, }) => { it(description, async () => { - const Component = () => { + function Component() { const { translations } = useContext(ServiceContext); return ( @@ -127,7 +127,7 @@ describe('ServiceContextProvider', () => { {translations[assertionValue as keyof Translations]?.toString()} ); - }; + } let container!: HTMLElement; diff --git a/src/app/contexts/ServiceContext/index.tsx b/src/app/contexts/ServiceContext/index.tsx index 8b69b155734..39427c4d9eb 100644 --- a/src/app/contexts/ServiceContext/index.tsx +++ b/src/app/contexts/ServiceContext/index.tsx @@ -13,12 +13,12 @@ interface Props { pageLang?: string; } -export const ServiceContextProvider = ({ +export function ServiceContextProvider({ children, service, variant, pageLang, -}: PropsWithChildren) => { +}: PropsWithChildren) { const LoadableContextProvider = services[service]; if (!LoadableContextProvider) { @@ -36,4 +36,4 @@ export const ServiceContextProvider = ({ {children} ); -}; +} diff --git a/src/app/legacy/containers/ATIAnalytics/beacon/index.test.js b/src/app/legacy/containers/ATIAnalytics/beacon/index.test.js index 5506ee953bd..c85c4362a62 100644 --- a/src/app/legacy/containers/ATIAnalytics/beacon/index.test.js +++ b/src/app/legacy/containers/ATIAnalytics/beacon/index.test.js @@ -3,8 +3,15 @@ import * as analyticsUtils from '#lib/analyticsUtils'; import { sendEventBeacon } from '.'; const sendBeaconSpy = jest.spyOn(sendBeacon, 'default'); -analyticsUtils.getAtUserId = jest.fn().mockReturnValue('123-456-789'); -analyticsUtils.getCurrentTime = jest.fn().mockReturnValue('00-00-00'); + +const analyticsUtilsUserIdSpy = jest.spyOn(analyticsUtils, 'getAtUserId'); +analyticsUtilsUserIdSpy.mockReturnValue('123-456-789'); + +const analyticsUtilsCurrentTimeSpy = jest.spyOn( + analyticsUtils, + 'getCurrentTime', +); +analyticsUtilsCurrentTimeSpy.mockReturnValue('00-00-00'); describe('beacon', () => { const atiBaseUrl = 'https://foobar.com?'; diff --git a/src/app/legacy/containers/ATIAnalytics/canonical/index.test.jsx b/src/app/legacy/containers/ATIAnalytics/canonical/index.test.jsx index 8fd2feea88a..c795fca6894 100644 --- a/src/app/legacy/containers/ATIAnalytics/canonical/index.test.jsx +++ b/src/app/legacy/containers/ATIAnalytics/canonical/index.test.jsx @@ -3,6 +3,8 @@ import { render, act } from '@testing-library/react'; import * as beacon from '#lib/analyticsUtils/sendBeacon'; import CanonicalATIAnalytics from '.'; +const beaconSpy = jest.spyOn(beacon, 'default'); + describe('Canonical ATI Analytics', () => { afterEach(() => { jest.clearAllMocks(); @@ -10,13 +12,12 @@ describe('Canonical ATI Analytics', () => { const atiBaseUrl = 'https://foobar.com?'; const mockPageviewParams = 'key=value&key2=value2&x8=[simorgh]'; - const mockSendBeacon = jest.fn().mockReturnValue('beacon-return-value'); + const mockSendBeacon = beaconSpy.mockReturnValue('beacon-return-value'); it('calls atiBaseURL and sendBeacon with required params', () => { const expectedUrl = `${atiBaseUrl}${mockPageviewParams}`; process.env.SIMORGH_ATI_BASE_URL = atiBaseUrl; - beacon.default = mockSendBeacon; act(() => { render(); diff --git a/src/app/legacy/containers/ATIAnalytics/index.test.jsx b/src/app/legacy/containers/ATIAnalytics/index.test.jsx index 1f126c95ba0..e6e77364812 100644 --- a/src/app/legacy/containers/ATIAnalytics/index.test.jsx +++ b/src/app/legacy/containers/ATIAnalytics/index.test.jsx @@ -30,27 +30,44 @@ import ATIAnalytics from '.'; import * as amp from './amp'; import * as canonical from './canonical'; -analyticsUtils.getAtUserId = jest.fn(); -analyticsUtils.getCurrentTime = jest.fn().mockReturnValue('00-00-00'); -analyticsUtils.getPublishedDatetime = jest - .fn() - .mockReturnValue('1970-01-01T00:00:00.000Z'); - -const ContextWrap = ({ pageType, platform, children, service }) => ( - - - {children} - - +const ampSpy = jest.spyOn(amp, 'default'); +const mockAmp = ampSpy.mockReturnValue('amp-return-value'); + +const canonicalSpy = jest.spyOn(canonical, 'default'); +const mockCanonical = canonicalSpy.mockReturnValue('canonical-return-value'); + +const analyticsUtilsUserIdSpy = jest.spyOn(analyticsUtils, 'getAtUserId'); +analyticsUtilsUserIdSpy.mockReturnValue(); + +const analyticsUtilsCurrentTimeSpy = jest.spyOn( + analyticsUtils, + 'getCurrentTime', +); +analyticsUtilsCurrentTimeSpy.mockReturnValue('00-00-00'); + +const analyticsUtilsPublishDateSpy = jest.spyOn( + analyticsUtils, + 'getPublishedDatetime', ); +analyticsUtilsPublishDateSpy.mockReturnValue('1970-01-01T00:00:00.000Z'); + +function ContextWrap({ pageType, platform, children, service }) { + return ( + + + {children} + + + ); +} ContextWrap.propTypes = { children: node.isRequired, @@ -66,9 +83,6 @@ describe('ATI Analytics Container', () => { describe('pageType article', () => { it('should call CanonicalATIAnalytics when platform is canonical', () => { - const mockCanonical = jest.fn().mockReturnValue('canonical-return-value'); - canonical.default = mockCanonical; - render( { }); it('should call AmpATIAnalytics when platform is Amp', () => { - const mockAmp = jest.fn().mockReturnValue('amp-return-value'); - amp.default = mockAmp; - render( @@ -109,8 +120,6 @@ describe('ATI Analytics Container', () => { setWindowValue('location', { href: `https://localhost`, }); - const mockCanonical = jest.fn().mockReturnValue('canonical-return-value'); - canonical.default = mockCanonical; render( @@ -126,9 +135,6 @@ describe('ATI Analytics Container', () => { }); it('should call AmpATIAnalytics when platform is Amp', () => { - const mockAmp = jest.fn().mockReturnValue('amp-return-value'); - amp.default = mockAmp; - render( @@ -145,9 +151,6 @@ describe('ATI Analytics Container', () => { describe('pageType=MAP', () => { it('should call CanonicalATIAnalytics when platform is canonical', () => { - const mockAmp = jest.fn().mockReturnValue('amp-return-value'); - amp.default = mockAmp; - render( { describe('pageType=PGL', () => { it('should call CanonicalATIAnalytics when platform is canonical', () => { - const mockCanonical = jest.fn().mockReturnValue('canonical-return-value'); - canonical.default = mockCanonical; - render( { }); it('should call AmpATIAnalytics when platform is Amp', () => { - const mockAmp = jest.fn().mockReturnValue('amp-return-value'); - amp.default = mockAmp; - render( { describe('pageType=STY', () => { it('should call CanonicalATIAnalytics when platform is canonical', () => { - const mockCanonical = jest.fn().mockReturnValue('canonical-return-value'); - canonical.default = mockCanonical; - render( @@ -229,9 +223,6 @@ describe('ATI Analytics Container', () => { }); it('should call AmpATIAnalytics when platform is Amp', () => { - const mockAmp = jest.fn().mockReturnValue('amp-return-value'); - amp.default = mockAmp; - render( @@ -246,9 +237,6 @@ describe('ATI Analytics Container', () => { }); it('should call AmpATIAnalytics when platform is Amp and pageType is CSP', () => { - const mockAmp = jest.fn().mockReturnValue('amp-return-value'); - amp.default = mockAmp; - render( { }); it('should return the correct language param when service is Ukrainian and pageData language is Ukrainian on canonical', () => { - const mockCanonical = jest.fn().mockReturnValue('canonical-return-value'); - canonical.default = mockCanonical; - render( { }); it('should return the correct language param when service is Ukrainian and pageData language is Ukrainian on Amp', () => { - const mockAmp = jest.fn().mockReturnValue('amp-return-value'); - amp.default = mockAmp; - render( @@ -305,9 +287,6 @@ describe('ATI Analytics Container', () => { }); it('should return the correct language param when service is Ukrainian and pageData language is Russian on canonical', () => { - const mockCanonical = jest.fn().mockReturnValue('canonical-return-value'); - canonical.default = mockCanonical; - render( { }); it('should return the correct language param when service is Ukrainian and pageData language is Russian on Amp', () => { - const mockAmp = jest.fn().mockReturnValue('amp-return-value'); - amp.default = mockAmp; - render( @@ -363,8 +339,6 @@ describe('ATI Analytics Container', () => { setWindowValue('location', { href: 'https://localhost?at_medium=email&at_emailtype=acquisition&at_creation=my_creation', }); - const mockCanonical = jest.fn().mockReturnValue('canonical-return-value'); - canonical.default = mockCanonical; render( @@ -382,8 +356,6 @@ describe('ATI Analytics Container', () => { setWindowValue('location', { href: 'http://localhost?foo=bar', }); - const mockCanonical = jest.fn().mockReturnValue('canonical-return-value'); - canonical.default = mockCanonical; render( @@ -400,9 +372,6 @@ describe('ATI Analytics Container', () => { }); describe('pageType=FIX', () => { it('should call CanonicalATIAnalytics when platform is canonical', () => { - const mockCanonical = jest.fn().mockReturnValue('canonical-return-value'); - canonical.default = mockCanonical; - render( { }); it('should call AmpATIAnalytics when platform is Amp', () => { - const mockAmp = jest.fn().mockReturnValue('amp-return-value'); - amp.default = mockAmp; - render( jest.fn()); onClient.mockImplementation(() => isOnClient); @@ -304,9 +308,9 @@ describe('Chartbeat utilities', () => { const mockTitle = jest.fn().mockImplementation(() => pageTitle); if (pageType === ARTICLE_PAGE) { - articleUtils.getPromoHeadline = mockTitle; + articleUtilsSpy.mockImplementation(mockTitle); } else { - frontPageUtils.getPageTitle = mockTitle; + frontPageUtilsSpy.mockImplementation(mockTitle); } expect(getTitle({ pageType, pageData, brandName })).toBe(pageTitle); @@ -426,7 +430,7 @@ describe('Chartbeat utilities', () => { .fn() .mockImplementation(() => 'This is an index page title'); - frontPageUtils.getPageTitle = mockTitle; + frontPageUtilsSpy.mockImplementation(mockTitle); const expectedCookieValue = 'foobar'; jest.spyOn(Cookie, 'get').mockImplementation(() => expectedCookieValue); @@ -919,7 +923,7 @@ describe('Chartbeat utilities', () => { .fn() .mockImplementation(() => 'This is an index page title'); - frontPageUtils.getPageTitle = mockTitle; + frontPageUtilsSpy.mockImplementation(mockTitle); const expectedCookieValue = 'foobar'; jest.spyOn(Cookie, 'get').mockImplementation(() => expectedCookieValue); @@ -959,7 +963,7 @@ describe('Chartbeat utilities', () => { .fn() .mockImplementation(() => 'This is a Feature Index page title'); - frontPageUtils.getPageTitle = mockTitle; + frontPageUtilsSpy.mockImplementation(mockTitle); const expectedCookieValue = 'foobar'; jest.spyOn(Cookie, 'get').mockImplementation(() => expectedCookieValue); @@ -999,7 +1003,7 @@ describe('Chartbeat utilities', () => { .fn() .mockImplementation(() => 'This is an index page title'); - frontPageUtils.getPageTitle = mockTitle; + frontPageUtilsSpy.mockImplementation(mockTitle); const expectedCookieValue = 'foobar'; jest.spyOn(Cookie, 'get').mockImplementation(() => expectedCookieValue); diff --git a/src/app/legacy/containers/ConsentBanner/Banner/getDataAttribute.js b/src/app/legacy/containers/ConsentBanner/Banner/getDataAttribute.js index 2d93a766890..1c96651ebb6 100644 --- a/src/app/legacy/containers/ConsentBanner/Banner/getDataAttribute.js +++ b/src/app/legacy/containers/ConsentBanner/Banner/getDataAttribute.js @@ -1,4 +1,6 @@ -const getDataAttribute = type => value => - type === 'cookie' ? { 'data-cookie-banner': value } : null; +const getDataAttribute = type => + function (value) { + return type === 'cookie' ? { 'data-cookie-banner': value } : null; + }; export default getDataAttribute; diff --git a/src/app/legacy/containers/Text/index.jsx b/src/app/legacy/containers/Text/index.jsx index b42eb1e6afa..8f9fbe8f30b 100644 --- a/src/app/legacy/containers/Text/index.jsx +++ b/src/app/legacy/containers/Text/index.jsx @@ -4,11 +4,11 @@ import paragraph from '../Paragraph'; import unorderedList from '../BulletedList'; import Blocks from '../Blocks'; -const TextContainer = ({ blocks, componentsToRender }) => { +function TextContainer({ blocks, componentsToRender }) { if (!blocks) return null; return ; -}; +} export const TextPropTypes = { blocks: arrayOf( diff --git a/src/app/legacy/psammead/psammead-storybook-helpers/src/buildRTLSubstories.test.js b/src/app/legacy/psammead/psammead-storybook-helpers/src/buildRTLSubstories.test.js index b8ccbf8c6b0..04538f08f63 100644 --- a/src/app/legacy/psammead/psammead-storybook-helpers/src/buildRTLSubstories.test.js +++ b/src/app/legacy/psammead/psammead-storybook-helpers/src/buildRTLSubstories.test.js @@ -4,7 +4,8 @@ import * as withServicesKnob from './withServicesKnob'; const mockAddStory = jest.fn(); -withServicesKnob.default = jest.fn(() => 'withServicesKnob'); +const withServicesSpy = jest.spyOn(withServicesKnob, 'default'); +withServicesSpy.mockImplementation = jest.fn(() => 'withServicesKnob'); jest.mock('@storybook/react', () => ({ storiesOf: jest.fn(() => ({ diff --git a/src/app/models/propTypes/general/index.js b/src/app/models/propTypes/general/index.js index 658aa605d3c..83a5b4d12ab 100644 --- a/src/app/models/propTypes/general/index.js +++ b/src/app/models/propTypes/general/index.js @@ -13,8 +13,8 @@ export const blocksWithTypes = blockTypes => ({ blocks: arrayOf(oneOfType(blockTypes).isRequired).isRequired, }); -export const arrayOfSpecificBlocks = - propTypeData => (props, key, componentName) => { +export const arrayOfSpecificBlocks = propTypeData => + function (props, key, componentName) { const { [key]: propData } = props; if (!Array.isArray(propData)) { diff --git a/src/app/models/propTypes/general/index.test.js b/src/app/models/propTypes/general/index.test.js index e3cd8428175..049adabadbf 100644 --- a/src/app/models/propTypes/general/index.test.js +++ b/src/app/models/propTypes/general/index.test.js @@ -3,6 +3,8 @@ import { arrayOfSpecificBlocks } from './index'; import * as getMissingRequiredProps from './getMissingRequiredProps'; +const missingPropsSpy = jest.spyOn(getMissingRequiredProps, 'default'); + const propData = { testProp: [ { type: 'propOne', value: 'Some data' }, @@ -28,8 +30,7 @@ describe('arrayOfSpecificBlocks', () => { }); it('should return an error if missing required props', () => { - getMissingRequiredProps.default = jest - .fn() + missingPropsSpy .mockReturnValue([]) .mockReturnValueOnce(['missingProp', 'missingPropTwo']); diff --git a/src/app/pages/ArticlePage/Byline/index.stories.tsx b/src/app/pages/ArticlePage/Byline/index.stories.tsx index e14f90823ca..371f6fd638f 100644 --- a/src/app/pages/ArticlePage/Byline/index.stories.tsx +++ b/src/app/pages/ArticlePage/Byline/index.stories.tsx @@ -22,18 +22,20 @@ interface ComponentProps extends Props { fixture: any; } -const Component = ({ +function Component({ service, variant, fixture, children, -}: PropsWithChildren) => ( - - - {children} - - -); +}: PropsWithChildren) { + return ( + + + {children} + + + ); +} export default { title: 'Components/Byline', @@ -41,57 +43,69 @@ export default { decorators: [withKnobs, withServicesKnob()], }; -export const AuthorRoleByline = ({ service, variant }: Props) => ( - -); -export const LinkByline = ({ service, variant }: Props) => ( - -); -export const AuthorRoleTimestampByline = ({ service, variant }: Props) => ( - - - -); -export const LinkAndLocationByline = ({ service, variant }: Props) => ( - - - -); -export const LinkLocationNoPhotoByline = ({ service, variant }: Props) => ( - - - -); -export const LinkLocationPhotoByline = ({ service, variant }: Props) => ( - - - -); + ); +} +export function LinkByline({ service, variant }: Props) { + return ( + + ); +} +export function AuthorRoleTimestampByline({ service, variant }: Props) { + return ( + + + + ); +} +export function LinkAndLocationByline({ service, variant }: Props) { + return ( + + + + ); +} +export function LinkLocationNoPhotoByline({ service, variant }: Props) { + return ( + + + + ); +} +export function LinkLocationPhotoByline({ service, variant }: Props) { + return ( + + + + ); +} diff --git a/src/app/pages/ArticlePage/Byline/index.tsx b/src/app/pages/ArticlePage/Byline/index.tsx index ea08011d9cb..05589e7b096 100644 --- a/src/app/pages/ArticlePage/Byline/index.tsx +++ b/src/app/pages/ArticlePage/Byline/index.tsx @@ -15,7 +15,7 @@ type Props = { blocks: any; }; -const Byline = ({ blocks, children }: PropsWithChildren) => { +function Byline({ blocks, children }: PropsWithChildren) { const { translations, dir } = useContext(ServiceContext); const isRtl = dir === 'rtl'; const bylineBlocks = pathOr([], [0, 'model', 'blocks'], blocks); @@ -227,7 +227,7 @@ const Byline = ({ blocks, children }: PropsWithChildren) => { ); -}; +} Byline.defaultProps = { children: null, diff --git a/src/app/pages/TopicPage/Curation/Subhead/index.stories.tsx b/src/app/pages/TopicPage/Curation/Subhead/index.stories.tsx index 06353856f78..68282a3266a 100644 --- a/src/app/pages/TopicPage/Curation/Subhead/index.stories.tsx +++ b/src/app/pages/TopicPage/Curation/Subhead/index.stories.tsx @@ -13,7 +13,7 @@ interface Props { variant: Variants; } -const Component = ({ service, variant }: Props) => { +function Component({ service, variant }: Props) { return ( @@ -21,9 +21,9 @@ const Component = ({ service, variant }: Props) => { ); -}; +} -const WithLink = ({ service, variant }: Props) => { +function WithLink({ service, variant }: Props) { return ( @@ -31,7 +31,7 @@ const WithLink = ({ service, variant }: Props) => { ); -}; +} export default { title: 'Topic/Curations/Subheading', diff --git a/src/app/pages/TopicPage/Curation/Subhead/index.test.tsx b/src/app/pages/TopicPage/Curation/Subhead/index.test.tsx index a92f26892c8..5ff740eaa8f 100644 --- a/src/app/pages/TopicPage/Curation/Subhead/index.test.tsx +++ b/src/app/pages/TopicPage/Curation/Subhead/index.test.tsx @@ -11,15 +11,17 @@ interface Props { } /* eslint-disable react/prop-types */ -const SubheadWithContext = ({ +function SubheadWithContext({ children = '', link = '', service = 'mundo', -}: PropsWithChildren) => ( - - {children} - -); +}: PropsWithChildren) { + return ( + + {children} + + ); +} describe('Curation Subhead Component', () => { it('should render a link correctly with the url contained in the href', () => { diff --git a/src/app/pages/TopicPage/Curation/Subhead/index.tsx b/src/app/pages/TopicPage/Curation/Subhead/index.tsx index fdabe30f54e..8d8198646c1 100644 --- a/src/app/pages/TopicPage/Curation/Subhead/index.tsx +++ b/src/app/pages/TopicPage/Curation/Subhead/index.tsx @@ -11,7 +11,7 @@ interface Props { a11yID?: string; } -const Subhead = ({ children, link, a11yID }: PropsWithChildren) => { +function Subhead({ children, link, a11yID }: PropsWithChildren) { const { service, script, dir } = useContext(ServiceContext); const Wrapper = link @@ -27,7 +27,7 @@ const Subhead = ({ children, link, a11yID }: PropsWithChildren) => { {children} ); -}; +} Subhead.defaultProps = { link: '', a11yID: '' }; diff --git a/src/app/pages/TopicPage/HierarchicalGrid/index.stories.tsx b/src/app/pages/TopicPage/HierarchicalGrid/index.stories.tsx index 8303a1f5c87..1f1eb7cbdc0 100644 --- a/src/app/pages/TopicPage/HierarchicalGrid/index.stories.tsx +++ b/src/app/pages/TopicPage/HierarchicalGrid/index.stories.tsx @@ -13,7 +13,7 @@ interface Props { variant: Variants; } -const Component = ({ service, variant }: Props) => { +function Component({ service, variant }: Props) { return ( @@ -27,7 +27,7 @@ const Component = ({ service, variant }: Props) => { ); -}; +} export default { title: 'Topic/HierarchicalGrid', diff --git a/src/app/pages/TopicPage/HierarchicalGrid/index.tsx b/src/app/pages/TopicPage/HierarchicalGrid/index.tsx index b62826dc54e..1636c52ca7f 100644 --- a/src/app/pages/TopicPage/HierarchicalGrid/index.tsx +++ b/src/app/pages/TopicPage/HierarchicalGrid/index.tsx @@ -40,7 +40,7 @@ const getStyles = (promoCount: number, i: number, mq: any) => { }); }; -const HiearchicalGrid = ({ promos, headingLevel }: Promos) => { +function HiearchicalGrid({ promos, headingLevel }: Promos) { if (!promos || promos.length < 3) return null; const promoItems = promos.slice(0, 12); return ( @@ -85,6 +85,6 @@ const HiearchicalGrid = ({ promos, headingLevel }: Promos) => { })} ); -}; +} export default HiearchicalGrid; diff --git a/src/app/routes/cpsAsset/getInitialData/convertToOptimoBlocks/blocks/include/index.test.js b/src/app/routes/cpsAsset/getInitialData/convertToOptimoBlocks/blocks/include/index.test.js index 8934c5c58ac..1ec524a60ae 100644 --- a/src/app/routes/cpsAsset/getInitialData/convertToOptimoBlocks/blocks/include/index.test.js +++ b/src/app/routes/cpsAsset/getInitialData/convertToOptimoBlocks/blocks/include/index.test.js @@ -7,6 +7,9 @@ import pageData from './fixtures'; import * as fetchMarkup from './fetchMarkup'; import * as getImageBlock from './getImageBlock'; +const fetchMarkUpSpy = jest.spyOn(fetchMarkup, 'default'); +const getImageBlockSpy = jest.spyOn(getImageBlock, 'default'); + const includeMarkup = `
INCLUDE Markup
`; const canonicalPathname = 'https://www.bbc.com/service/foo'; @@ -64,7 +67,7 @@ describe('Convert Include block', () => { describe('Data dependent conditions', () => { beforeEach(() => { - fetchMarkup.default = jest.fn().mockReturnValue(includeMarkup); + fetchMarkUpSpy.mockReturnValue(includeMarkup); }); it.each` @@ -93,15 +96,15 @@ describe('Convert Include block', () => { jest.clearAllMocks(); }); it(`when fetchMarkup returns null`, async () => { - fetchMarkup.default = jest.fn().mockReturnValue(null); + fetchMarkUpSpy.mockReturnValue(null); expect( await convertInclude(idt2Block, pageData, null, canonicalPathname), ).toMatchSnapshot(); }); it(`when getImageBlock returns null`, async () => { - getImageBlock.default = jest.fn().mockReturnValue(null); - fetchMarkup.default = jest.fn().mockReturnValue(includeMarkup); + getImageBlockSpy.mockReturnValue(null); + fetchMarkUpSpy.mockReturnValue(includeMarkup); expect( await convertInclude(idt2Block, pageData, null, canonicalPathname), ).toMatchSnapshot(); From ab5ed0c811dc2345cedf0995e8a999681efd07b8 Mon Sep 17 00:00:00 2001 From: Aaron Moore Date: Fri, 18 Nov 2022 09:24:04 +0000 Subject: [PATCH 3/3] modulepreload fix --- src/server/Document/component.test.jsx | 74 +++++++++++++------------- 1 file changed, 38 insertions(+), 36 deletions(-) diff --git a/src/server/Document/component.test.jsx b/src/server/Document/component.test.jsx index 4586950157c..10415461f19 100644 --- a/src/server/Document/component.test.jsx +++ b/src/server/Document/component.test.jsx @@ -26,46 +26,48 @@ describe('Document Component', () => { ); const links = ( <> - - - + + + ); // eslint-disable-next-line react/prop-types - const TestDocumentComponent = ({ service, isAmp }) => ( - - - Test title - - -