From 8b19da4e32a32c202874e18eb57b15f8165c2b3e Mon Sep 17 00:00:00 2001 From: Merlin Beutlberger Date: Fri, 15 Mar 2024 16:20:00 +0100 Subject: [PATCH] test: Add test for import from test-resources in library --- .../src/main/js/ButtonFactory.js | 7 +++++ .../src/test/js/ButtonFactory.js | 7 +++++ test/lib/linter/snapshots/linter.ts.md | 26 ++++++++++++++++++ test/lib/linter/snapshots/linter.ts.snap | Bin 7273 -> 7431 bytes 4 files changed, 40 insertions(+) create mode 100644 test/fixtures/linter/projects/library.with.custom.paths/src/main/js/ButtonFactory.js create mode 100644 test/fixtures/linter/projects/library.with.custom.paths/src/test/js/ButtonFactory.js diff --git a/test/fixtures/linter/projects/library.with.custom.paths/src/main/js/ButtonFactory.js b/test/fixtures/linter/projects/library.with.custom.paths/src/main/js/ButtonFactory.js new file mode 100644 index 000000000..ab86dc330 --- /dev/null +++ b/test/fixtures/linter/projects/library.with.custom.paths/src/main/js/ButtonFactory.js @@ -0,0 +1,7 @@ +sap.ui.define(["sap/m/Button"], function (Button) { + "use strict"; + + return { + createButton: () => new Button() + }; +}); diff --git a/test/fixtures/linter/projects/library.with.custom.paths/src/test/js/ButtonFactory.js b/test/fixtures/linter/projects/library.with.custom.paths/src/test/js/ButtonFactory.js new file mode 100644 index 000000000..794c1c96a --- /dev/null +++ b/test/fixtures/linter/projects/library.with.custom.paths/src/test/js/ButtonFactory.js @@ -0,0 +1,7 @@ +sap.ui.define(["library/with/custom/paths/ButtonFactory"], function (ButtonFactory) { + "use strict"; + + ButtonFactory.createButton().attachTap(function (event) { + alert(event.getSource()); + }); +}); diff --git a/test/lib/linter/snapshots/linter.ts.md b/test/lib/linter/snapshots/linter.ts.md index be0f01704..9109f30c9 100644 --- a/test/lib/linter/snapshots/linter.ts.md +++ b/test/lib/linter/snapshots/linter.ts.md @@ -794,6 +794,14 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 [ + { + coverageInfo: [], + errorCount: 0, + fatalErrorCount: 0, + filePath: 'src/main/js/ButtonFactory.js', + messages: [], + warningCount: 0, + }, { coverageInfo: [ { @@ -909,6 +917,24 @@ Generated by [AVA](https://avajs.dev). ], warningCount: 0, }, + { + coverageInfo: [], + errorCount: 1, + fatalErrorCount: 0, + filePath: 'src/test/js/ButtonFactory.js', + messages: [ + { + column: 2, + fatal: undefined, + line: 4, + message: 'Call to deprecated function \'attachTap\' of class \'Button\'', + messageDetails: 'Deprecated test message', + ruleId: 'ui5-linter-no-deprecated-api', + severity: 2, + }, + ], + warningCount: 0, + }, { coverageInfo: [ { diff --git a/test/lib/linter/snapshots/linter.ts.snap b/test/lib/linter/snapshots/linter.ts.snap index df7b0f89a889e83dfdacb286be78a53250179fa1..87d51b2c94844e811ab2e05a99bf5742635768e3 100644 GIT binary patch literal 7431 zcmV+i9r)rwRzVI>lCpXY+q(R&L_)EZbL;-hPYCBv3QN9b;6z}mR8}Vi zH=3q0C`s8=O-&6_1(JkRDM@RyM45Tk_?SwY9ZK zRY+w>)snPbf@zW;DOe{>iDz2dp?4cdHB6O!*}MwXG!3)e=+|xcQ2?PpO}Anz$t^`n zg}b$+x?8b(vkxls5ON#zU-KFi?o%yG=}|4AmMH^@scU-A@E3)p^7|!tNP@>D_&W(+ zklNK-Ct2nuFLIJ0r{%%h{BVyS{>~3?_~G|{p#uZMJ1{H-|2_c!5P*LTKsX4C zf&xj-zXfZ3I>rV{p63M3&9$+jxkQ3ZWfaCH@Y zrAiGsK;MyAaiyC;QMj)y1kbJQguC0ZKYvK7? zc)M00sq~DJfGEIm#a4R^b1*G-PX7lg>9?E=RkjCHs%&)2T0+%rty@z~ zIntxr5n0pah;f!;YKm^}P;{k7?NgmpYO`W1ooZ5z+lCqIQSIm@vZ;2frmDx)Hrd*f zP0NRyA`v-m^d}RtZrJiZRZgh3YW8WmnkWHGB6U7YWkq0`C6xfCZo}N7#CwkfRqR0e zi51Hfj7GDCn&frs{^QWAqB@(KBR`xBa zeyew=iv8+f(<#Gf4(EPNaK}^>=$I)*I%Z~|6dj`_ZPiToi?TJT9!!r;E0)fPMvbj* zLQM>13SH9LDtGm&a<`F88Uvc%BfE38Z1uXRrA#ByA6I2X&Q5-EhL5)V8pNdKwc+DFOl73L>|!W-uzm1 zL$-{5Gp@>gN=jCB+Z>d;4by#zl1Qitd7r7o_p7!gM=i}6*qSXT4ApXlM?I)nwu5xK zj;7df2sKMi8J21}Q1vRwq^kF*ZtZ*2lwsPc8M7^?ozAOm!+mGmFikaX%Sj`y*qWg` zl{?QfjdW~*+&kiiZrQSx5&9w3vrZTpK$Brl#f+zW2g-ucG&;#a^FP#?hvjmJk{+x*A0M zqD@Uh%HsSZ5N*|xYS&;&jW%6yYAl+kY)sYeH+6Y|sGu}Gp6pMkR@Bp98R7}nOY;io zrTQXz>7^1(7>+tRE|wp%SWc)!H5QPlX+PhSbWD z@yIOXT%23TIlXhU5g&0CC-9w;uHt+P_$OeB1WQJ{iqkRHRUBv0q7=(G;VeFGbJVe~ z;S^e)k^I+uQ1J~C+%Bx+1Vn_>YcXGyvTHTJkkV^4VJW=S2Q5C>?t>m5T;YRPeK6Ax zd&E^2&k{=5^us|v{D~j_(ho2AVQB!=0NfcUyqr?yuJ#ldLqQ=o==O&DD^yireAN^l zU((9GmOES$YRXidQSE;Cq*T)$l$W~SLuz8FQy`vHEK6Rxso%B@eW_4ub*9$Ms;y{A zEBkon=Al|`)v~i6P$H*he^Tv8WPi@-*H$=YimjS0y3sP!vKA$!iQ;BCA4{4&I3%=1 zp%j(bXrZht0_B=^M;F;fK9=46dfffKS*qB!67TI&QXeHWGs@1&DZAZCMbl6398uks zeR@LF-G{Si?OAjiqq?gYLdb1U&jcyFfTQegmf&6q9xkTz(yPu-p=geEJ}R=D@v)oQ zGn0{#n~e4-10&nr-=2_(sNw@{yJ)l%(YDF9yUWt(xQ&TVl-2EQ$zCtPt)sKLzml7P z-W;;J7yDqj4?29HelQtb?t@o+Fx?Nki_bbKKOFGG4SsmU56^utSuGAgJOH;(mepPU z2^*RdsO2g@d2>ca(V00#*VTE3wtr+#k-$?EqU)+8SUOr=clu=Oy7C-AZhN{XO5I&6 z!Hp8!F*$SYQ9t~^577X0 ze_(LmHCgJe*cd&o?nVuznD@z1cL#FnZm;evx5jNXF`~-zhbF{1u2zC&qg8o3CfPZz zY8Xatlgx3r$N93$r=xX&3yzHN?NSEe;7by`BEkRtKxIz%!3n;?UTfptWDvhe^9Plv z*ThYR$4arukQ;mHErxxz9?Lz7=7wlg^zw1M8;qnHOBy}VNSBgIsfkG5K6|0<^31?F zxXc-OZSuxs(si7$+_7);#rm}sG21ly_a#-!=u=}#D&-wbd!No5P4!8@1pXMf3b-D) z4Y(h86!? zQmNWa-jyDSPVzM;>CVBSnL(Hvgj0g>M?v^(5dJy{FN$uKK5_aEy&Hu0gD|rU)|A18 zWpK|(?v|dJKlG1f@MakVLa-zRXN2I(A$TBE%)2r4d~hNr9H zXQHF)Y7eQe2EsM4qz1OtKwk|!S_99E4zKGxr2kO^|5*dmYGFk!oL>t!*TP?kj<1_N zq_5P%>$ULPT9{J@o9f`|I=HV+Anovwe!mW0sDoeDL3KTxTn`89;re=k^b8N_WA*T4 zJ-k{Ezo`d#Dx5nNtf>O&nO;Gh3b#&$C#J${Q^7Y4)=q=7rU|57N0{vgr%mo`KXpLe zr=(J??M7e9&>gqa%$$GYw6V_lIo`fLR^B}G@fev~m|-q%=(cGjld9ReF_nr9{me4^ zerN#<=qhPPfdnNm%wbxY^UcIVSFmVS`s^wsfm`s=ZB>iKvWBdgOg ztoA9o)~#BOqBV54X>~Kk&E2LMliQCCS>}v{nrwCa#}(Ti>c5`xb9luhb2wudhwgtX z%ibO1XYa{LW^ZYRJ!fI2)md%nFar4_ebCRdarXw+I zq?9hzvaQ&~{koPjhfW(m%NLK8Dz1fh@p{s(1vH0?sSuD8UR$z-QEct#v3;YekR~pO2 zLRC%yp-@=d)tlP@3mc$CC|D^LT-^Zc8{jmdV0D3Z*B8i}S|D$FfxH<7@@5stYbcO6 zTVOWW*#PG@K)eC;1{f5Wo+Dy?WdnRkC=@C1#zh74mK4ZaD!jP*h6cE~0q$*pha2FD z26(ywUTlD$G{Bn;@T&&+T?2#~p}rC3HV$uSQ-K$*Dv-BEl#ys7#2R6>@PalG-}Xl6 zXoSv2_;e#^0>SzMZ*3RfYB$26Mz~U_WJ`fcPAiaidV##{1@d-ycFY^$#zwe9XxPpI zmFy{y*I6KMulVu@8sU*fctUvjStD;=J>BSTNaTLMm;0UGkXSW4yJ2zB?DU33F6*{j z)@wsq=?#n7bFx`y&B<+ZTsJ4T&GFov^fpKCwV}D$*QU24+U8~}=$o6X;Lf?Z3Vt*< zw@*?wFSk#!W?pWeBsnj)Pjbh++&;+<=jHZEg7b6xB&+A=_DS~7&+U`kK0m!rlH>QK z`Pnwr$^yT;UZ6yf_9!b1z;xrOkHg%DT-7c7EX7Qv4f6%940frGWajc;Fe_q>0A%#lgr?# zW$?3Q@Y`iDb2)r%IlQ%8Af4wS4K+hmGc0e0ZOssGhHwkCw+N*3J*4p#&|2WC7PzMc z{Cqcu>u&?>lj6+FHQUS1`Tw0cPHSq)!Z4bQBGw^oCHjX?4# z56J^-;E^@(;u`qhYoMY{AUVN9a>iQNvlh&?@a47ewY37ti5`-_UI*V?2d}Mz->icf z>jjdNJS4BLhksfR{!?MWsj%);f#hTlN%aPpwgFDw0DCrozCj>a;UQVK5!yFGd?Q@G z5pLTkkgW6!`pui*^i9ya39j4(cW#3BHo?kvxVT*)KgC0ST|3;=4v)3NOYQJ)?a;m% zF5e8_+$@l<^)&dk&G7Th;M)T77FfGQAUV}T@{e2L&8<+j4Hj*K4ci2g4IYxR4w%vb z%^h%h2XuD`BpW>>z1uT68}8i=-`x#A-3`Cl4SUXnFP{m|o+*&;@{s?pGvQZfLd_mn zz6ZALf!p@LPxio!PJw*4hkRuxtnGyJI^jSkT;BVl=s0?~i097(B|2X0Y~ZQ7y;;>Q%^q}jN78OUPG!!~ z;#~u}YUcKDqfN1qiHe@Yo*1t~F`CaO!0WICf+rpb%|~=e5y88mM1r@&+2bfKYHqP; zL_1-%9+}v~{-Q5%J}9Czh@f0kB2f0I={Q20`t?LId*t7RAm+&(=ZHIgLS)iirayrv zM6!#+1<(``8!eh`MbJE6Cxcc5Dh z$J4guz{#zaYTKILW3^g?dc4;(bnTG4yXWX8SN_t3F_$jplEn_39NXoDV|4Y`M-$5( zMfCoai~-D+1Dev}q&r10p8WW?%_RJ!3dX5)b7lHKLIU=~NPS(1}2zU*F6`Am1 zJ#jIaiUkh6ycA}LZR|~@RI^>NG6u*2CE2gW@*Yoc)FpB6?`ROPeWi(nmvPgGMmp0m zHI0;-j`Qd`tjGyXNg6$o=Ar30x=lNv>do@mz0UuxURBSYmuPL3oi%$s9e34opSgu& zTBog;_Kv~59YaR%C3(>!Gtb%$y<6*P6OLc#N}t*$M~-k@Vkk1_;Y{$tQ*w=Q8=P*3 z)7qG!clD~y=ICxGX0^84R4uEkSM5{=U1rlJMKrGh%TmpuI=V)vBaK?8s&@6NZY7&t zz@kUrie3BD@9%K3y|s+CDLW0jP;1(gs-pL&hAPpzRK-jf1Nx4^jj5DVa)QG@7CHq~ zY%SpJQVjbMgfTt*CqY&x4e265r%DsR`UoQ|jrP%u$Vr2#SUl4EOCyjYE0Hu#N2PTp z4Jgs>6oGoAr1CU^t}HH8BP!TQ1FTq7#fM5LStHE}#e{3*d1TVynq360&zA(QVRK;~ zLgFMjX;z^aJ6VKb!30@_@uZO<_@tYK$4$7x164k5!hJ|c7h9@7Zo;{F(c_lM(E+yn zxMgxQaK%1KmPz659T9}lE^vzAiVK{pN3p%rp=);j{!Y7Ls>k^5&g6i(vLKkQ&w{Bg zm7|%p;mm`kV;jox4bMVw7F$xfq7+w94JewuHG9*6yUCw<67}8}<@{-hHaXIpH=Q<* zSj;)Xv9q8#l0N0(XviZ}p`?x7Hd$8(WOu%aHjP};J(;p2bA6H=*{r2?NVldZT)vlf zDuWs8|7^|fmD7rMsl3nSKsM5=#v4;9x7iWTJ0{pt8b?@g-+hxI1DW$>&SeH|vb&Sh z7b_?Yma3TX-d!nGPeX6D$+p?AeiTG!*Y=#8WNwklO!dc-l*}z6C2t%nQj)>$2vX7? zkE@o|CLcMTRsLUVt305}mTJ2#c0@wn*KZ9r%a-9}=xX}@vWxpwbI>i4QcP919k$$y z$x^8!R=q2wtcWS@M{ms7A9ZEbwOTT(2eM|lyG;?{g1nq4j7``wm1lrErX;M`r^wkQ zSiLEUggG{5vm+ac{=UA!X1PPYsNb^X0Y$gn8|2jZ{+xU@%LBctsmdL4T+uU1Dm}z^ z?TE>{O=F+3FX_sTsXAS*$oo_$rhz=5q%XKrBPKS?1r`2 zdH-kyJaY?L!ie{~w?Vp+oV|5uV=@_y#4IJXBQvI&V$RigcCUNo#lpyb`HkM%jL+3rLh9R1U4J9evKds$Q?I z{$$#ttF^B+W5YP3@gpscWA(2tau4Ch&c8Yv3-+{hEZ9z?Pc0e@R*pK?1RMRfqi&t{ z%dNS)j+?xZV#8m^ixe9;8E6AG1G|dFUrrxSK9B5~-5bdr4StdA{X-!qfNY%vtrF~( z;D7{94E4V+5|ueDh2E0j-<%kY?~j$Y4?Q~M^uV~8Z3`SDQFDq$hdgV{%#JzY zO5s2&mj>W-f#F&pRG@+iPoRhZ+!%m6gi0z$j@9r$V0dhXe+gt&iyX{`0|=cT1SJTU z2H}<<{7n#Q%V4`0Y&q;v3j538;xf3l3?3|l|6T@jLvW55Y}s?ZKXfnzp9#UOA$U9l zFNdHd483Bo<*JeNNr9>Gm_OY2A$!ap+efcHWH65T!&4Js>@<%M_&%xaGZk|%=9o6I zc)w*EeX*2c_l|Ipg#4Fz22E%Kuoc)1oDXyZ7iU7@7c_3tp;fNR88_b@GH!lPF7CXz=lnc}HkdzM75|%>F9WnndK~?60m@Xe&=Yt1D6UJ-(yzoJB$BcQ$De8wcesJ!^ z`cl#RWI}(Dxku(DKfLRQh5(!s08_k6#uNJ_ySmcd;a&HVq$V3w$v=O4jbJ0&!^=Gq*~ zjJNhFn%;Vm)tVkFTNP)$Fc-P=?9jMP8EcZ6oRQDumV-)PYA7P|pN^lszZxrhr7}zB zjlka?RZpnqkdgNO`1za{o@9%3SU+Y}YlgqJ@VNPlkD0#`^`ko&-5`}m8jP2YpUZnE zo68ybTneM{`7!f1j^K^&gyFp~g}x~Y#%!$cl|#53>dRqnIYi6hq;gna4jtvtRSp-H zQ}CO^cTqW{ghJB_v|^_C(Q>F9E-QyG36&HI!sv;ccw;%-B2+L}eA9j9@L)MSCKQy# z+P+f`-xCTg9QhmS#q#VoR66#XzaneFtgOgcFj_^!1rdrKhFSW3M5lKp@?pp3AfFJCuhPdGvVEtaPBO)X%_r&mOwt; zL;lVzcyAWWXn+$NU}pn-r2+n>0pv!3yum}hp%Jz=LZT5aYlK@H;hjeK)NI&4yV&JL z;j3rEb+h5&+3@UacxyInm;;}g1K*faEM{Kt)j9C9Iq-)$Fn2DjnOp46qo6tu_RoW> z=fPL!!PD~ul8C2~`{qOMeE9r)xO+Z)dpaSN%Fi3)uofW`89$|{n{2<9xhXOo_HZb=;jufg|3AAw^ny{U F000heo+AJN literal 7273 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