From b3018ccfc9260b79927add2ef6e66fb3d6a2ceef Mon Sep 17 00:00:00 2001 From: Mona Mayrhofer Date: Thu, 3 Apr 2025 14:27:24 +0200 Subject: [PATCH] test(playwright): install playwright --- .gitignore | 2 ++ bun.lockb | Bin 277908 -> 279372 bytes flake.nix | 6 ++++ packages/web/package.json | 4 ++- packages/web/playwright.config.ts | 44 +++++++++++++++++++++++++++++ packages/web/tests/example.spec.ts | 18 ++++++++++++ packages/web/tsconfig.json | 2 +- 7 files changed, 74 insertions(+), 2 deletions(-) create mode 100644 packages/web/playwright.config.ts create mode 100644 packages/web/tests/example.spec.ts diff --git a/.gitignore b/.gitignore index d2fcaf2..2046892 100644 --- a/.gitignore +++ b/.gitignore @@ -25,3 +25,5 @@ yarn-error.log* dist/ .direnv/ .devenv/ +packages/web/playwright-report +packages/web/test-results diff --git a/bun.lockb b/bun.lockb index f24e64ac0e42f060ed336a1000eb75b078df35cb..d75fa9e053a20c65fdeffeccfce84117afd0a29d 100755 GIT binary patch delta 41374 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 Ef569Z!2kdN delta 41097 zcmeHQd3;S**FNXoTyhY^6mb#r7$K7zBDrRQAm*Wlh#*9Q#8g9~v=ybKN9}5r(zmKL z(+btr)Rs^+w6v(UI;m=FYE>t`=Q(?yByH*2_x*j}_gC-Fy3bx~uRX23_Hg#ya^8N( zf9Wq}mxMIbuGIJ_;9%E?OMW}@rag1t)~UrFOKb2}?jyw}oD7Qi_C}abjE~08OS%1n z+#@$QEJl8n)3ogB2nGNj&dm+VGMt*`2j&j6N&wRm)6!E$YFcu}h{-9bBeh>$n#M$z zfaQUwfE9oTlzg+|mjf$7{t%FQ6M+?h!+=cR707gvKbF0iVWrDab= zpb7+oR74wKAo$uqm@4~DX-%sG{0LYR_&Tr#@JS_~38daYU~QlWSPNJg7zF$Y<|Up3 zQg08iD)1S~vk;i41Svo_`1^qPmpyqhI|8jm*BIdUR+bfAt8fvJ6`cyCMFs)cvNlTI z5Qu--0l-`CB*ik*9#g2=wDf#4S6DB2RWN5o! zG|C$SO9IycS?UwOvcLsEm^6E)!gL^OlLTaKGLq9QbM=>emF(&WFr(z;CZkd&Wn`9D zyxZLB3^IHb_qBP(*{Q|Xs0=IFRVL1!oHik40-EMke1y{e4SLKovyp7vL35x_knwtB zDSgSD;}ejzE?8D5xQVoLRUjMi8{}-jli*qLV1GzCh(NM0c07Y(lNx;#DB?-2$ZEZ0K_grvhn{R>(g{)3UP1w3CDWGZf6h zJr@;WUyV*pACZ^}(3`Cq&wD8 zj`f^QGTkH~`+O(l0hl$i7j%}R=_E4XDBBBU4Og2Jiw9)gLA5x?J%M6~+kh;lLRV>z z{y&CYUX~-J~5O6i#T8nx2%HnG8%BpOUFX#LM_Gs4kn8nUR_@0@WP? zo<7pPyOn=dc1r}OWtyN>`*T;CshSqMCd z023|%vS()j*^*!?0IMss2SB}nvLm-5L%LulGGqn&0IC1>An5`9fx+P00@?9)18dzU z8(12c#SCnZ_+_xHF(%#g)G5i@mqX^`*m1AW?Pm~22SDo_dWVL*1x zl$6Y53?(fnQ8w)8a9NRDAT2T>F>~k`Or_dP2$-M}6lwa4@D#QvDUlwoX}*xN;9sCe z%cQ1H<`k@51<#B!Q_`kqOqi~H3Z8nqF*{OkkC|8^DDXk3QVT7za@_!}^5Bn~%Mm*t z9Lvne9N8o}ZHhKgOqaTOn8s*=jS3e6nQGL?lt~&stH875$5njDIH{iv zo-KRH3@sUy^#e57)0ctFEg6F%4F=k$Qk_hfhDuGIlEz#Qfv4Wf3ikjF@FSBk&M+5_ z1z!gI9|x;}Ix*c)#Iy7kz`B|i2B&Yrc}MePNQDqY&@?Hd)6yrwJhc^H9!OW5Z0e-~ zjGB|BmXBGpR6tzSDR$+tIwQ?BRF&owkh5}$N$HbV`!Ddt!e5^%80kJ zQuSM$o-PfCrLM`S)Wp$8z*B4G{jv+c1+poLW05^RQ)b9{YJ_>AR6y1t$4=<@mx%)p8#at#siuA5Fpzdh4IL?*psuZ7mav&c6}hrS($Bla#nU} z2m&FvI$joR8>2q>8jzO;GQRa(xmC=0Kn|$};44Eu96T$sA3TkBXP&H(?O!7%B_<`K zv$j7dR4u!lF&fM32BNElShr>h9V_7IoT5#p}h?`O?Xu4KWFM?1F}ryT@F%vD$RdV zY9*zorcc7`WiPiG(5nHxzCb#51h6Ks8jzN_y+F47aUgdWFQML?>!+@i9XJ-~2fp=gqnSV+~;-pE5)3x*$ zWrO@+tV(=VEtQ8YBotoUAsyy2kdAU#;a5B5Hq-;2j&kW`=^)dA92&iW?4?H#9|TNS zdc74^1=24Zz$(C9(5C|)XFgd7Jc~dj;39=bUXxSGc7^u?*^;M$)SC~i2pk1{7JPD# zY*E5qska|IyKWLEn8OVfUNNhAg9`AU~aZF z?G5=P&>2XJH3u>y$6GSvZ{Cy@Jgu-H;^`Ahke=mWfwIcke^7P_`Z3E=!0yQ!QokOO zCcFTo$?}1$K&!*D3u2GR_)@?y$UlX=5wPS@*)_Y~mix9ZfUMvfh_4RZs`7an$cETE z<{8JbWQ{u=ml+%b(qtV@$Qm~X(y0zWPA5t|CV6`_B!Z{qjCa-KF(xHx3>tImq->D? zd(xtJ5Kl{81v0;YQ&K*m?4vQvkiuJp+L&3C`I3v3w5RCB`oC4CSuK}s|oWe(e^owag z`qzlF+gn!ZSJB+k_yc{7nG@{Q8=3jRUL)6`X;FxGm?zSs%(y0Ay^@)O?*V2$zSo#W zh}ZS0Q`0=AU$a&|#WbzG86Ohu>V;58EA#|HovqL(1+jIC+p<)Ix>>P15t1oxBh zDd}y=<{&i03Vno7iWTYvr%AFxFCvs^g-T+~%h*hWWQr3AjkaQ=;NQts=xKz8S)pGG zLWAMlGR01WWUc(s=TdJ1LQ60A_`D$JjHs}N#rD<1^`D{0hwqE^hGp?=Is8US(mvKzzpkdWHWxLCHbx`FY#gS4tjF~nxG1W-&Qos2 zcZ`Nt<#g~GqwCp2Ft>w8Uu7B{z54rRTt}~~cztRfZ5wTLK#0w;jNr-w*W8S6$D-pp zdG(8CPA9J`umL7Y=4*67sF~D`_2`q$xXxbVImTMG$&K+CC%|#o>!yDbkIQI?+^rh5 zGvngCzH`CTPT3_P z$_JsA%-z);p^oetV<}}aaaWJyoo42O4zWgQ43d6Qh)RtF*Nw@HEeN%;_ebDVy}Ni^rO`F9bXp?=p+0tQ`av_lw^wgy8hyM*GS&&%Zscq{3ywC{*dNAc z;P4Ma!@sRZuWTB9y+$gkA=|=1w$9Ay>(xIu^YI;K8vVRRibwXZ%RGT0vD(am>=VeO zf1l{;F{;CzWNYEY#vpKvgFagJgqhRdYm`C5X(8C-{wUKJ;58OOLN7$mA%{1?#egeg zCUo}bZZjVmeWPV>`mkI>fK$HW^%z&d(Uv~e{DtLgpw}3VD$t@%lV1J|IQp@Z8peCz zXhoEUHu#wNgS`4-(-`cjUo&SgddMr&VB(1L7}vqE46EHnFbbEsGlvmo&V63v z24w65-72vsW*N2!CARZ$N*m(UkC-|5#$<+rM)$m435?pm^s6|#(wY|S3ah{*W>yg92|IXv@5QIrVX%CtVRg4 z4`eqHYQ+$HFwyIpf&tT(ym1X7=7P~VGs?_I+`l?$S}$`^aI|p~A@-3qa*fuVB?oWq z<#DY7*U_5UzF-JiR=>F#$5|_9$7t77gfK&(%$LplB(LMwIJ3maSUUDduWKIiO)!rR ziguks$jgvXt*bPzVV;1oM}d>s(uH0DhZf2y&$tbargvFg*`=FwFRSZ~`HDlAp_|_V z$1aeXx53FS;{@Q1m+84+-OjkGG<;3}0Ujg1dl45i9tKAjN6r|$ z*T9XC=}`CHJ*25HK?i&Er%fXT0|YV-0t{j}Z*Wgp6Vw?s839hZegdXFF!XD94YInS zIN7-H1baS9*c{~xhVBSOjqE`{l)fXJP8?)P5ggTmjSQfrPNIEC&Tc@|o z%VDi@L(QC2ul}T&pXxP!L=4OZ$D}>m!MoWjvXmTf%)`gbMLYMI`QyEMP18v8x(4>u zv=-Ky{Fs>o{(bP$85)>Ix>uiS#-&5rPt!V?N5@ASE&FR4JRSY(kHNIdG$weB?;&do z87$V%qc=BmCU~)Y;t8AJTGg>;%`9<+z-K z=xy;6qaBL}nO!Ev8lORcTA)GxDIQmg!T8aT#8{v6+*BHTgbi9Jy|+28T|O zGmUW#9L<9fKfzt}>u*NkW*2D62n&M^HLBNJ_>$?XxvBVjde zv7Ubi&e~xZ!SK*96oiqAxqhe_H_dBogiJaSv$+Y5-3!NsOSMYUG%S)>8*!{5A8C&=Wa)|{XC94-HnI?s8L+5B;MlvET-th!63Ip5I)ZD4 zIBRUVmVmEaA3Ie1K`*XaxFOnj+MoV2V<5W zZD$vU5VN!PQN|p_!DUiB#x8J7gZ$91H<$(-+`hBN)o_gE%-HOWHgjfs^*7A?*3FO zUVXY5H`i-?nvQ)Ia)wngjv7snJprS@AqIhCh2*GOMvhB>e$vdD=QT=Av<;9u+heo^ z#}2`W#_~KLobnfxz2D4v5ZlB_c5di0y@zQ$9d|{=6|;P#Nv3R#uQhvRfnzS1uizxR!O2dgv9E!n&td*RdBKxq z32^rQQ9fWWX%1@TivUwt1IYMNadNQKnjZab=W%rhhX+`Uiq#0ok;Fd#3|th_ zU|gY9k<$x?JY0V?IV;U_B}dNK1bz;VZig8Necs^yqCPYn9BnP@upS)ClEdsraI_~T zzu6u=+{}5@Yb=?eY4=$gaCPGwa6Q3E|7kVTo}=ka6Tq>iSZm|B&CFlyHNJxkyC&*S z@VJ`JvYr_6kbw>J5^kRImv{}=Y+HxvI+}60USk1dEv$68-8_y1v&|B7V~tx77OtdS zv+TKpp;n_GP1x$SQ;D=uYqd?uDI3D#UGMAh^JI|b{}xeORm|Ef@3<2M3l21 z9Q)JSj2qg+SP!kZgj|o&3tR_q@bB4pP*8E;;ykWT!L{bnXoSu$7}+B|##C_hUyOn! z9^*xD&1HTl>l1J+xi}wOTorO`3ynpnr)7;-5R%r=7RWlw`JyE_ti{=N**%;up7I)x zE|klfY~yF(*ba;-lvHz(^m8m#n66X7b+qE(MaDL8v@u zRR3*oqrkz7O^*>~N=>4ucxcdsoc3HD06jQfWd}1#q$>>3Xk# zldj4g>i6K-G&vauKQ1S}l2*5*f}?q*i@yj?8iDou6kHhMtQxs0EJOXQsVNzuwzk}O z9$a&9n9kdJTwj611cr@J6`^S%W_+(`qccKr&?sR&S?8L@TCe`G8MoGJ1U_MJBe=I4 z0Is!le)0rDY>mwG6u9QrlT69w1unSM$x|Esog4fmhDZ7>P5Tb)i_x%{$AaK&!Emp{9K}@;m z)#c#2Ar56cALR??KFPp)+u%4KyE{H4W0b5hbJlx}H7oIC1sOK0b3Kk5E6oxcV)cP$ z+y<|{)6Cg`4gD(lWQ|F?lgEg7M!GeY`=ywY!Lcm3S|5+`D!8E*hY7$Kuv)fGK3FXS z*9>u}F`jMTGUGO3)4E2=u#{m3wE`TiEEmh;;MkAS|AL>j`(OgZ?z-^}0Yb-nT&o#<$n zXxBFgVWxgCT8}Vuwt0=~YwfwgA7i}p^Xx1h?kq$|=Fh#%VQ_^_(bmbGdMPuv7dFY@ z+Mp(q+W?M-7?QgLjt-<|tQVyFV;6w=tGD8;hiiR>8TYc+^$lcjKpgFOUX&>jyUe41 zVj4TVM%VSy*cj~CWzPT?VGWOP7Kdm=QtHIy2C_; zUVIQ-PsCZf9M>su?XAPwz?ak%;yVx_`hd)QuP}Tepo^ewF#CrunG4KVV|bpXVGqx- z2xA-u$KfQo20P^-m)!gUjw^48UGg-+igTrc>t~%v?ng-03x;=;hfgcQczsI50(^PoWaHUN-0I@+u|(tE^=Ru`F4?FTr)OIPSQc zy=HR>uVBXsj>`@@ZAFyt>o&tCXMt;JXX4rg4v+g?q77}2^g>zB&fu5<%njq0-zzOC z&(MZ}qtD1{JPVHAi=yE4m%;Ti{YFN+I_^U`)=mRT!gay$s!O8aV`0|38f6(jN@&=z%ctBU{O-)NBh~$J={axu)SYLWZ`GN_v zvp3eNC^_LYdQUEva<-obj!PC6b37v*2iFN4rZV(#vs3o6%5`A@I8JPGnb{A{`aQuY zaa#6_HQJ4C;KHGW?F=3TvcNHoT*UIgadyYtnuOs6j&+ny+~|Gj>T97F0sk zBdqNIA5fM5zfzzdDxIz>{&%tN-%-@fY99t<6+_ljRrY@eb?8n5IY9TTbVZT!nIP)T zQt?I67qSOI^voRII|)Ky9f%3Am9jqn2{NONAlm5_E44)Chegx+5M7|X7FQIN^Zz+Q zYTiw*n@!GpvWi0iYk~E-8^B9o+rX8gu>+%;zMNcNyQV{pjC<| z(sIu#z9{Ot`S^vPEEe~?iY79+PVq$6cfFEtP`FXyCLlj|L#ErR;_rr>MR)1A%0``6 zl%j=Z%%=faoO}*KY5+c}-&no?*NcqQ*v-pcZ=6@AP)oTi`>zJHMLhu`< z{|4Dkc0SQbWBvh|g%9K`*ii9Bk?|!|d>Nn{d?N>(gBdn~fC?chVNs;KsY)23;)^0h z&GE&2TBvv;)3sDQkrneQd21m3r9It(5ph6%{tBtmRq6dV$O3yHJuB8zK;lNN}AWuaQ*n$5O50UcmK$bHJ z$b6>*@h?l8g>Qa{RLqtU+B_vEGB_V!jDJMQiL}&0AfL^b1G#iO2V}+8E8GfX!?r7Y z8OVyf0_0Xw+ieA~I4XtLf&36zz#fHrmAoj{K>R0=vw%;5RQVELtiU%4uLBv+KhiTSdhaS%F$W zK4fXNl|mgLGj0InhsgMbO5Q}t?}jX>sfsU(6h$ccT~MxF9;HwenPCgaS%H=cqm>?! z7HO+^B3sl&@qZuXT#lr&AQn~?R1HK+)CBP<`v2@~(=NXo3gPGf8?*jSf&YhRn_1cj z+3^1p{P$;@p8x#tlV_j*oNa1*?F0V3sssNH{&TkZ&)KH-&)McbXPf_=ZT@q%$<3M< z+dOW%S_8S^`sZv@+G7Q`zxezG{&TizS%_zx^q^Oj#r_JZQuIud8IY%ZFTR-1KWCfP zV>T@D&)H_Y^PjU#j*am=cu~kPk_Mib4*chA(=tVoGfi5GXPy6?ZOT)cf6g}lIotf_ zZ1eyBY%}kEm;T7tBKex$RbMZ*Ueo*Q8-#Hkuu&uuHi=z?&BFf%V2em0Y!&+m+eF~^ zfbC-9_quQeVHGGT5{fx`o7urW)$BiXy%h654*#>cM%aJ!`u)5)Kj_6BuF5!kE0c#L z>vgfPn!{HgoY&?jJ=&pvlsD@aeOz&u^;c-cH9tou=4s%M)>?nAb(v`6bWC+^_2O8c zB{pVkMf;D80^Ta;p3>RQ%z)-boja+8KRo^EM?1n(0yF|tDNB?rj#SyuTrA* zn@aXGBTyx_sHv3{#{AaLvD@|X7}e0Gy7;h+qlUgI@3%6JaSm5o+;_ApG=sVNxu?rN zU{)7cwy+*mb%EM!u`090iOR^9w<+Zq=a-NA<2f;V>jM0lDVc=I&rsQzs{RJm`Mj-F z9G^LC`-f9Pj?#Bn7=BQX8WFBj1NT3j1M1O8WR@w4?gj zyhj^3ial6j9j`;+Ghv$;vBeRab^DI|P&N-y+*p(&gAaLXlkCI)hm;QYB(dti|6wKL zBjij*;4@#zs1l@PIZDRgXBtRZthPW2`HMoRQhY?o_^U#Mk}Xs+KDnnN%+Df`xYbcU z>rt@GlfTE-P*F>jI)9X^rDTsQ84sqLv7z`ZQ!@UF=Bs2v$@trYeY^DuB`XWrY!E-Z z5`)@h@vo|B*_7bJXGYtIgH(pR0>dD0?UYnTTd8CfASY%AgNH3!-2s9I6-e2Vf9Lj2dW-Gl-Kn81q=tk7D zFX+@lc(Ic4k`B|>29-dVA70R5{j=)etE3Xzw{z-3_8n8;vqL4Whj0L7>{njaVRU^^ zWu>=M$r?bm5X8?e$XG~2(4!#sKOb_Lq!B2W{m;*9O4u0TCoDN2>|s%_5f397G4N1>~(F$~OVAMzt#(Ywq7mK)qSbgMiF&O-ylTnM2_=g`n0E^-`=3<8 zSO~vYR(My*ypXZhw8nc%)>_Hf@>5FI24P-KV8*AFtS!PHs{GzpvUZStq+}o1x4_y% z_^}e6fg=8C9YCKb**TRM>!kLxl6|OTogm|oZ3{fFWStTI0y5_Nk&?wB{264-_hTh{ zW}7cU_|$k^Jha16PpsSF$ZXEvWZQw-gF1jZf;xdZgW^D(&Rca}jK;1y`pfVtTP&rTqabc&U ze8VaTx#1#Lhns4st@=SxPKgZLvp?`ls4WrF5_9suz+LJ1I85w043pwgf`KL z3&cAai$ITp7K4_6a(zVXD~{3$ywP$8exTBzGN7^`e-Q5j9RwW$ z@j;sxj9vx31`^`wS76)65HvyDlFkS5J{K3T(I75byazTC#B1nR(A2A-YoP0(fspqB z#e;f+dV#)&oReHvgkwQoP-jpah380V)aNXyF{eDS=Y}hc}1w zM3K1L(b&bMCtKw1cDTzeL~s#^8;D#`4^6zj+tJpQh@!)V>s3cm7B9q)M${P4C{Plp zJ*WeyBd8OoGbjWU2kHXi)!`N(E>v8X{6M8a28b7{FN3}XaeX=tItkhX+6&qb+6HyraR(_&%RpcL=)roVs&amO?m3ip9{ z&#^z~CL%fjJAyia+JM@EjzZ2AaSw<~JogQ+fHs3(1g!^gr}R8%6^PfSmx3M#Edz1i z$i?wz&?_J}=tE91TR_`EToKO#9Y81OZG?}3j)PtW?EzJUJP|Yklmr?H8V>pqR=NfH z3B>;o!4;A#;#m-{74fQ22&gWo9;iOZi3(-$@=^uR93-3$;)?kLh&SghgT4j51KJ3B z0kj_UJTm8hlDLBmegzGM>__0sApQ)%ZQDxF9q61#r9T3F4Eh9g0rVb-|IbD6-WQit zE}>j8xk3h`GW>r{m4Uob#VdM0fw)rs3c8JqhXHQ^cYwHw^#O71(?Jfb0+j_n3{))(E#$qhwP4nO`XS@iinuf4 zE@~f$`@J_ohd{4`UIlSOx)HPqv>LPmbPIX>0{Rtn26Pp)7X?-Yau@b8XeVed$OTyz zw_GPd`#=XldqKa#5BQ&MK0rmj0Wo71MqC4W8gv`+)IA3xlK4MgxNEuvq7LaRglRE0 zinltsk>SSWHxOjyEd@sQWV7&@_AWOsjr0w96ZbnVR_OQ|WU~?V8E`j2$OREwhf3K0d)i#Eb7criJ=rz8^SeZ&3LKuU>DUdqN^YLJ^w^!h>LT z-JS=(s<-?4tOh#do{-Sy+H^7g14p2H9u!JJp-RQN{&Q;ge!GDl+9D)0q#62CtcHUA zjM)8wBV2z;TmcuE4|N0T#lKDX@xzOw%Rs$3Gi+uV8V_LE6>H5u`cB@LuQkxaA!bIG zMa&sTpyLNk3^;?0S26JjSUpfYcg7JO8H^^CL$a?P{O(Ad?-nkqr6Wy9IFfPGz?dD0 zYi9?We&5zAXjD((ch)i5%{hW~nNd0V=ah&0jH*>o^;EI=EGjz#3T)ebX20yOhYk6l zFo%Z`<3`L6Tk_jP7h6#gNkbx8R}9?qNUB%L`|+&fL7jip%KD?+xlIQxs`qkCiwgQ6 zm>rv<>}fz|K6~fnj6+eU!Yb%PLqo!7xp`vihmLT^9fxSv$XQu8#GMaOnLs!moAc2} zd!Ak&_F4-cG&C$SBn*QIF%=MVsCZA&@vHIs3uC+@{yh4~esx;qpMMVRb+~zQp+bt7 z0|kAyc#3+t$OsS6*?s}-FRk1(F$y=ozbIo*@sUQ#(2ac=54>P?$*%dvm;g-q{vP@lGf!m~Doho*P|$P5dg|FP?VCU8sru*V$N3fN9T%aWIRcyWU3NJ2$o?oY zVfv6NPq%XDLz`im2@BQix81$a;_(T+0MLhXw_-z=C(5&1(WCuv735I{j#`L-dRCB^@StASc^1VGiKyLW1OykExx_% z2&{SoVs_#9H=dpC{pf=Phdw(DQ?&={T}^S{MI3hfilWqC2@Ye02T^BX`z@yl0$ z2yy-*>f@~??dTqUBX{25Nh%|m0q!KF_teZ_*B1wVyx^c$H0NxY zE{0KICKO7eHYKNw&N}t+?ZysFr%-{y0#Oas)t?X>skaV#TpGKdo$_ zze8oKiuC}u{f5L#eo3__of-bCN(Un^5s6o@rmN(bicVZ}R45)6f(F=G$vpIbui1P` z2zHUEe@(w@Ykn$L?TNx-79pk_Vk)niv3$|GK4B^bI~%*?RYFI}#nAQG8i~-WsQhlx z^(uBOZ-^{_+kT7Vvbu+oCztDez{-Nlv{HB5uW8)2xtRH0Xvaqi%dqk;Xk^uURI{Km zVFl)p6>;Aq0nBIFt03nB>rWCv*D-n6?}5Cy{)^se+m=_L&tg*spS?#ZCa55?Vx56{kchc~jQWX*0Jr^; z$VskoUw+kk$t}1R{D$LogxGTfCCT9vcuY_xL5~v>5z7Vw6I4vG{vr)DYva zB>VVW)1mc;*1YJ@BRT)0O&^HRP-lR%nf95e`IDn!vB;1X+MOtoJpg;BKyl)>qoQd2 zgTqI!C$fHXRCIBw3=_kCfSv3&-5t2FaM}39;l-?;SD_$SgQgp4lGX*O3}K=%5h;unD1ekY^oJnLjsR7$L6#7KJj zHqrDZ^bUx)n~pj9`{ItrSy6m)(@`Bi7v8z)XzaM&LInTlXz8|JhUs{JVzy`#hRF)! zFM_r&E#~~_2rqvzT5e^(TDPFg>C?p~IFQ@HA00I#?bjdvB;YiDqObNrG-|Y7Y ze*VoXRrc2S?Sxe=Z2Of#D+Yz5iuUUlM?AWA&wHUyGkG`$J_;Tp5^kaH(x@W)mcz$w zza;XZ?IE9k6SeR`E5}eymYHG|mFJ4AP-jIKGk#2jvNIUmCcZ`FUCh)BTWVNI_G_TN zMnwOFDZ}pCRw5m&{()FM$QdZs{NxyJERB^5kE&FSpV8~m1JLWC%~lKV&q!fahJMgO zvnmwe3~i>WL#@rieH&VP#Xc&Z6z2%4u#2M1FQ}^hcF?z~mcRY1Qx|J_`v~$XCV3%Vdww@jR`1kCcDyvLSn?~HEXRS1<6w-?*%-@6 z0eC8`CxT!t)e%x#wb!x$pQ%O_RcYXI*AKB(2WvF~q239KN z9)VT=?4Cp6y>ufyQqQx)^RuJYik<1B}w%V@_$&>c()_FGbi z$0e1lmDBeu6fk_5Z;n`f#}QC1LbKnSdg1obO${Raa{@>c_;DJLrSIDvJuX z+Z322Q2&z;KR&@3p;r)zwVjoGutVto_#W7LgE;SY2D4O9xR^%tWlJ zSNQ49cx-S6>&|dJL@Xw>6f>G3aeJ}46yUP>k;2WQu>)Dz?^eD4Tu|A!lbTFNR+yW( z8owuoK|wzyraPd1R&1pD#h%jrzPUBx{IK%A5l~mgpDZpw!ErM|{OWL4cH8e*?O!MO z)du5xJ!x6fs-pCtYBveJwS|eIRh)q!yxCD#Xdu*pkHsXteCTM?d$k445en@O+m&~ z6vuoD3la_&dZ0)#xG9o=5>!F%N0A>lI*pdDe6G}IzivhKu@+&RXm5&D(Chrid7lsE z^2z>>v%QSLWT@S(a;!aP?<&QdHHy}!z#`Q}dNI^1Sj6}NtVJbI?;~ELFjKr=%-Ptm z8$U~wEDq@cv54@b@DkRGeE>13IIO5*R9-R$6Z3Bd6uyT-L7_zq6LN1;+^anWyZhrY^d9Qr|pv0{x#|Kn+IRF+{oHj$l90x zV?UI|l;t&?HQoQNY&B*w@Pkp~t(D_%yV+kRQ^ z+%3t+8nx)L%d(L5u=J$}D&-7!+i&YVyJOtOfa$Z>LP3q{5HX&eV84-hOysb&O@qIE z911w0;)G*OD&e-<$Uc*HEAYhM`I4C6=ZtVq94X2fI9_IHXE|d9(v-z`+aMN~b_Pc70n2BuFRym}w0pz8DGr_X;lA`JVk#o$ z%sW^|MRj)#U+rOZwx!q5t&8tzE^q1k{nR2k7uV`Eb&90Ov7sUP3 zKG}Vw+i#N#6@$buDD-Fw1=eX|?tw}5f=5p;d=mE}hSSh@?GoRwn7L;)hByv8`Am54 zQ@l8Func;wtN4Y54?+%{Uy5}-xN5`MD>Et-G|;k9xPDYT1>-0i>DCHVL98$9Y@uHi zUzBxrz|Ntuzq6)8HA;-~$M}{Om1)EAbaISYSQ!R7t_~MI<(%ycEPbCyD2MvUBz88D z_qN`YWb2|wwsTnEjrYoIh=Jj)tq1-_c{X zo;X**IofT%M!Ck6E?Xv5=&~2x&URX01h z@q@`D%IX6UL;tm36P)pC-}RduWv*H6wT41z(KP^mV83Aaqnd%`O2m|QK!MviSR`6x zK_Sw9BXMA{{&n09rYw~T%))+$aq{d-Qzs3)@H}E*BMy@B;wbaBUw)j?ZCu~s?H-W3 z>@XgqhnU}=tzB{T3!izdA|lu+mXB2O!G7V8NUwphIxomsMXaa{ zS34^fMMH3$VL4k>wO;`J)bcv7$D7aNa9}8=dUoiwG*KhaIm+#mE`2EQP_A+Q!7b~p zDu=RT%Zt^4=z-ee6d^zS)3v45q{WB>4!vpH@K5xF!xsWi?z4sXFb+-^oF{~3Xg`g*&(qQ3X%6#=-*Y= zec+z&Tq{2Mwt4+Yjccflbv5|U0T&RjMBaK#BRH%mevB6aQ5DbTUT{NwRcG&Oa9v8E8{=|1b z;g75?(zd}!W0R6}XM%1VQCy{;Sw%@qj zW8;ab-@YFhiE`BZZ6yp>dZ^@Ua5x&_gBs38IAe3x#G>B+0Xb*CF|gT>B^K^jY;^)= z5KS8{yfsk?=?eA`hG#B<)SZfC+#TlT9XOCuD|CM0NX`-am~5TMt%Zs{RL@zi#lIib zf1DV~>W5H3WpQDsvvRR;&OZ&r5afqxyGZW1zB<01v$6Xx@)y@?Is3Zz&y|e~_5Q2w z%(?zmEEC}bmi~?>hCp4l^>>9-z4s)f97&h@?msKW#zcffq1qpd&^pNeis(wHEt2bC zHoP-W{Myi2S!}C=PFyICA}VtGgL1-)xv_Wa;j)oqP($qN=q&d8%6$fe^*LJX#WxYd zy#!*q3U^&+e5C!J@}s5V-y8Jum4*%-!_Rtnx8GR)aPfvKbbu$-`lU{Zr1AdsF#nN z#vv9DQMi}N7ZdBlpKmV^3+rQTvES!CG5+v#-n~DTg(7DG%!CnQ4-_Nq7l2p({?5_I z{I9lChJ>fvuL!?3@ugSKwZ8cSVz~K0%m(4t00tT&+BAT|=nRhx!Q@>MgQ#g4-w{E%+rNf7lbuezl+Z)JZVq-&O^qDw_9BfyrdIJS>b(~pj$Wt*3pG$*28;=&qeL|Sq ze!=^}GOJr`Ug4ag%ECfaL(FP~5pBO2{*6sj+m_SY{iieb2Yr+a3y0(jLDdDbK4nq=&wg z`d!jW#3)OJh;hNFw|XIYcK4?H*90CufCF4>Lj^nBCstA6-Z}V)cZ1QeyG;D_0_5<% zsM!SWbXxQ!1dE&|*h}5jox(Uu6NNVfhF1p>14Kp$c7v0}4d?ACOo*B_>K7~kYg2RVK^?f z4{yZqP-l@dLXSKVw2w7|_z-Bnh(h>%l`H5xMGlvT-!bCpFjRd26w1LAwcheux$>uH2SR~+Ak3>{ z#R(|rQ^jTK{rTr)=!J8KlPiM4VcH}yF~V7)7`81ujvpV65_50#l5fg!&EKo%T>ef+u<*Jc?d}3!Z zO!Sy5M}(i7IuuUXcLLD>WaaUXkL_9Os>6nA<}8q z?zu+(!1?FYc1$rbtT~eTi>4kc*~aF8AaRgFE3T>t@HhjcLOAkG^4KvfWvd5Mh;>*J z7`b?@oF5nV?*FeRHZR{}^`W&Nzw4pA74xKsk3xa##ONrPd=GNCdt>dGyPq@A#T?>T z6h?Eqb#i51QD@SKlJkdErE&SAZ@3mOsyC^yFI#5v^ZF1ASyv6U}AcDYi;lYHjkR0;!?7iC)AeVSH35A8tGvMBb} z&ojpCAF%W}hrS9D&c4>OX`uTY*wSD}4m_}bWtnGO4*e}ico=a>3iQkxEf9nwX zYY`d?KN`PHHs$D$aK~qBj(uVEK?I+6tRL^f-LFES3|scCYe1WNdzwQ5QymR`L>!I9 zsAwqMUUW$R?b1hfJiK~mhxGY4eVVP7mn6{x3X#E&Nvp02Kiz%Rb3b{M0xC8UNiE|= zcZ?P@p2LHZbqxTPXegd$-t}IVBko9*t98;V3b|tp;%2u(Bo~3=U+~0eW3I^FGxLhK)Q%& z1BFMR5Cnyd@tHYSBM+W0%;-fi5eoWY@d)9v$c+P(5_`za6M8qm5)s-J!#gZbzFFgs z!@I0*$EdulWQ`45`q!*7plq;ekFGNMN(_S){#UC}(29F^)qmP**$1+gg{@W%`cE_a zYh&HjO1~>2#pFA zYQ0^Qf$O@D;5sUf*B|Bo#D zclN>dOz-Zj`G+a*R`447RdA+1sGp*qpa`9Z7TXx?A+RT~g7p$~=;%hEuCBP**L!lme;K=r% zF5a9kYHZHLY3Ow$!uQ15F3k5eCB&)7excFm_y1c;PX)&i4I^i4f z6u|9xOYUK+<#tI+dd8gU&>LZx@l#J6qn^A1VP&EuR$l5T{*OQL;gJca)AX_Zc?rFp zxW6`Er1!zkE`Rs=)%!w)!@NE{PmD1+s_#$f63s5FHB55#gKl;V1}6558dO&<@BK^&P z$g3&^{eg!#`JgDJ($+X4Y_9GdRlwzvNc%2`RmqBCNq?u0drgcSqX}mc_j=xr@d8oKhlm0FuUvu7rE})F1DC z{6!hNggy{CeIZT&+$E374Nhlc%eQm(K3B)CbEKvUR##7E4|G*yc$y~5f zSb18tyT?TobvH%A?+3-`$i!oEy8UqH^TAK*iBF>z>Ub;_G2F5as=u%KoF#pDMTt9W zxW^0;GZ^i7PxK#*Y4RQM2srm$)vejJlh{Lr1IML<-`~3Nr{PWdltg~&aORk3b06|+ zF8l}`#9)FFDsG*ad>u6&w%z18zsH^<)0u$pAm(O+DE;$Ji(KqL)yPRGxP=Z89@ zaar4ae|3Ym)~X)B z`3{F=?dWMECxmUr6ol!}y09hAh-Zc)VX)XW9K&kU89D2XI4iz`xcM~vKdwqhxZ!N2 z$bC1v?VezRv)QPRQPZeCA9|xk#(TAnfUgMt?Z6uk@42mY?9BfuhR;0y zb#t7)=8bU9%4?tGyz+raIqY=j4Uh5p(ph4!jMWZBi=J(KYL$C`{Gh8(dX~G&wz5)b zty_r&ZG6&7Oi=u^R@AFkpto1a54934+xm1bsqt^9 { + await page.goto('https://playwright.dev/'); + + // Expect a title "to contain" a substring. + await expect(page).toHaveTitle(/Playwright/); +}); + +test('get started link', async ({ page }) => { + await page.goto('https://playwright.dev/'); + + // Click the get started link. + await page.getByRole('link', { name: 'Get started' }).click(); + + // Expects page to have a heading with the name of Installation. + await expect(page.getByRole('heading', { name: 'Installation' })).toBeVisible(); +}); diff --git a/packages/web/tsconfig.json b/packages/web/tsconfig.json index 0769318..ebb61cd 100644 --- a/packages/web/tsconfig.json +++ b/packages/web/tsconfig.json @@ -1,7 +1,7 @@ { "files": [], "extends": "../../tsconfig.base.json", - "include": ["app", "*.ts"], + "include": ["app", "*.ts", "tests"], "compilerOptions": { "types": ["vitest/importMeta", "vite/client", "node"], "rootDirs": [".", "./.react-router/types"],