From 2b654882fdf60b6c7d3361bdcc42fe4ea58b3280 Mon Sep 17 00:00:00 2001 From: Jacob Fletcher Date: Mon, 6 Feb 2023 16:30:51 -0500 Subject: [PATCH] chore: writes uploads e2e test for mimetype filter options #2016 (#2028) --- test/uploads/audio.mp3 | Bin 0 -> 23334 bytes test/uploads/config.ts | 47 ++++++++++++++++++++++++---- test/uploads/e2e.spec.ts | 66 +++++++++++++++++++++++++++++++++------ 3 files changed, 98 insertions(+), 15 deletions(-) create mode 100755 test/uploads/audio.mp3 diff --git a/test/uploads/audio.mp3 b/test/uploads/audio.mp3 new file mode 100755 index 0000000000000000000000000000000000000000..0598ebb6f772436717bceb5b9abeddbcd376de5e GIT binary patch literal 23334 zcmeFYS6owD+pnEY=t*b^&4e0y0-=M3P^1K;DoqS66alG?)+~ZKzILhp=Ufo-GjUUfx#rz|MVe$_xS}K_MP_*4f8t}1R(sUOZ2eI^ITxCd$^xR zfcO7=Hw@qxb}sOL2C%a;J{+9)@KaRx^K^AhWi2&jB7yMxr~kBHe>eZ<^#Av07DPXH z*m*b%KnehGE(UOO^YinIh=@o?NXW?%2n0<{&7((;8XHroR69F6CnqNwjppMM6ciK@ z5pntQ<=EJil$6ZOOcslE{rdHqnudmkwzjtJ?(V+6k&%(dj~_pK_Uz@$muqWp-@e`3 z+xzzI+pk~0FXs0(|33bon{)B{viPh2bKn1a_y67*`1N#TS%T>vlqAEj9NiNbz|T_+Q5$FyGdcs zlUIt0!de6qj^sy-TouoK1TakRiT@PWb>bae{<%0@Lk^kZl6m^JM7*g-Xwv!X`7}jZ z)FuAzM8C$p1lX-(#Gp_$46EQBLuP<%1gSjE03@xf+wsP7NpSNBp!;|{BBm3d^cn=t z5pPekDaagmKWo+ruF;ccam{%X{1{}I2q&)yRal3DgadMp($sOop-PIm!1N>{_0>sx z_oL)TY0=q&Wm7q7>_#|XO$-D?;firrl$I9NV&EIB(0O(B34(AYJZjjGo%2G0?WuA+ zHdfw+v#yc&#=BIX$*v$I!Ma+*YiEGq;Fr$gv_+pbb(%bll(jm(tHp+owBiFd=1Q4g z>&w%&^fX|XX_9V{IWw(TKXA~3yP-&Yb;IYR(E4(MK3B}Pa<;fXbb4;kz222`MYsmX zOcW03-?3m^*QZ#8)p0r7>p5uOH~ru;V08PQXUY0r#QJ@{;*0Y>?cO(%qOweR39T=0 zj~^0cVR0V|K$gofp#V!h;6Tii8I}hW6fcPs^vsL3ZWiR?8xJ@#uEozRQ(;8VgI7Ef zhqb0?Z1iFy4=IX8jVOe+yn*5Y390k9Nf1aNumm5{q@c@&S(Iii%)rFv=8~DNJvUJJ;rJFA_q};Yx-1`SRAIpf2?gf~Ii8(w=j4sQ!HPAJE z{AIg*Ql_VcJFFpBY%Grs{>kH`J7O@+UsB@p8#y<&Z)l$rl6Nod{6S7SzDSp6>%Yi3 zsXFB6NEP=wsh9Jr7H^6tnU9Q`uxShre9qezsMdpqT{Jzxf9FJ7_9^@}nCle&blL(f%WWf$6 zx)cpa_yito1q4K*iAH>cU<4wT4u@@+WyQ!OlsL&(nvxcWREH?(CorE(5%OFd0c6vG zQt@ICf+R;y^(|sfC@rLpT%R6pxM!no4(8^>IK`P3x8m4o30@ET%Z|ja%oJ6&VJzn? z@IlITIx7C{-}V~=j<@2P{Bv+drCJX!U9wIWLS2r^P+OO<>guRE_5yVDm>s0^UY(m^ z=;rl_MWW4>{bvY@!Xm?cMZ>ecF06XY#(`%$iw+2ix45V-~({o9S^h80>x zM{UZ-OgybDo`J7~z$98GtTO0kP2Y`&pSHgx+GRS7#c8U_A1)Puo0kJ1Q3hxRR&&57 z^gtFd&F(P}2*VRN8ULOR`We%brk288-YG0vdVvgN zLt!nfAVU6p5c{~ZO@_s$SB@$J3pO&q89Y<3e#&>nX{PLDNyz~B+U-v{n#PY615xFT z4RVCQu}WwZcJp-PXS317Z9_RqT4hy0J{wn}QDC)Bj3`zjLs%9p1+b9o_9oA_fTK~8 zqt~KrwmDsALpb&{ej|4}@oRv$jbs7U;}3FTz)YibZ(`CPm18DtY1w47nHpMiYEcGK zplc&K%5qt6`EUY!&Ay+MH#xbt4Aj}%gZ5R+_8Ka;lZY9BlO?&@o<>P?OJK#G86&Lw zxB(IpjK_MT#sc|sz&3W&r`kQAT7wEX`^dXLa(P7_ahAmTm5IL8R`@X@#F5`+skD^Z zLru0Sf1ZA^;L!*5{F3L1o0)$9s7~7&4gdhV*lqVy(OHCY+^~Z@Sb!~nBE;VT*BJRC zbN?crl4y9%<&5_9Ozb(>!}nc#9}#7SNHZyFDMjIACc?~%Hl@{*E!O-#n!poSWd8R-{qmW2G|`^f^Q z+Bn!_ktZc3Ws>Nz0jNtm&kXgrGoJTKB zc~g=v4#fnq6Pq_#9yH2yt1+W|G&v3zw}&sVPP6@?wKbewAp-;_6%c*Yt{I3d4cRFE zMy?R{Rmt0Cpn!VlIQ?r_MJx-S? z2gQG_^VQU#{$pt0+9}vjcmJ`R<>qTPK|(>rpLRAt5XnUj zpMi|>j8nzT)RugsBp#Pp_8@uT;DOlaxXPFWDTo`u7F&yDVi2yF_|QC4t8ih6^Lg;~ zTRip&>ocmCr4^+Ax%j%B%0Tb-;XXCLo4p)dLnx`1gxT*ZG*dw7ZoD_B-q80nF+X0^|g!w}z3P1foo; zdKc}T2etMr%{6y?uYYT?Oz_8%pH@r&moP?vJr;nS>TZrUrdU*9=i<Gu5)oy90G|9B{=0JRym_+$#`_{zi`wNuY;efbNNX z=3Je0gxgahp=!Y+rRHwjv#I%8$5LVjGTk%PeFSs|$$SO;2vn6Y@vrAa&&{W<&wuku zu?#JgSS8n5H_Ztg)hWn*9A_8m|8y88;WV;0AN>hgtK6yo8@c6#FP+}DVF8*FWcKH3 z0PVdaB_-r^ziZP{vTnVA(2LeR=k>E6$Mu_?j%DUK9%RUgR4>VMz0<>_BhuMSuO-)V zY59w6j|n_6I+paf>X<=X@7C?L397TI8IN4>?r7drRUOCoGmXmA!!M2o&71W&{hrtH zcP7uVwWR*CPYQQVEN|$p_6`9C;H1e!q^gDQvauveJB=x&z8<+eP%&Sibd;XimkRMH z53{>J@gb842pGW5o@F}JVE+d|0!so-z@qUWcjGoNM?64!gh#e-LqSH&@dJI&FV2`A z0B4yp-IpBC7}`%sdZ-#^JBCi@-6K1@*mG*ZW*y3G>2lC^u}qsAMg-AVy=reuOS3U& z$%hn2b-jQ)eM*idL{QFzh&AVgfcgD$;=Rj|6bQO=?^2BY+po5wPtFUazs41Q&(W`++XFqSI-pqf489^`uo1?ut~g)BWx2YC z#b_yLM3dR`p_pCTa$h=Ut|il}*}nN+P|0E7d->$(V2V165feyUpf88T;uNf zNr0l$ChHiUfZ9>~lRB_e#z49aN09u|AxDDn3gcA*7IKjst(D0E1tV+wgB{`8tm}Ej zNu7*Bu&98V5JVCN$~JLSBh5-8U}1)E8qypJ0L288L6c(%z0(sMl1A1~thnOB2YD5V z9GvN4j6`k?QyWq^dmNkwO@hjF64ZqJH}~#je{XQI5QFfT^Vf%`7P1;FA1HMuu`>{( z#Uz1~53^K+E>?#4M47C#3zZxMS7(si&=GIeg_e@!venyOD07 zE^Te;I8*hhgDH?NIKY=RZyM0~;gfQ#<^*_^ga&h>ZN z?Dmx!;m@iLj?1JtALHcw`1U5^-LhI8(z15LuCuT-_n@mvb&dVsiFN5Z6z4Vs8^O@d zNLLNaC(jGX6*iylcpw@O(%XhXXv1;WiZPozy#+}imH~UgkwV~BN;LUP=srLYodGx< zciGQ?HXTp#$GNsi0%Ns}C*r=7@a-cbcA{BSg1+iZ_}Iouxt8h4EP6|VcA1>GwKeor z5X@+`B4wU(a@5%nayw*o#%*?jr7w`75o32IwVeHKL1}=ZWE6- z1+-<5s!%oJm*?^fTF{ZU3KAM4yCWqY0A$%^ivMerm%Zi0y;Y8?);8#PLX-4}5dSy9 z<@t9K$Dy2jh4%t?D34=4CG*K)KQn9pF43revwUCK_AfnIbzeM?@Xy&pHuDZFvMI>% z@re$fv)AfSv6*JpO~Lm(_npne6I(sly^77mlZ^Mu7ZNx9)7&nkNA)`T{|?un3_Bb{ z_7yiLFEncaz_5mkGJ$N&oTX!-)WH-(8;*%u1W^M2Ds@#C%q7YzDhG`QR*@mc2ZdSy z703I9@~{{?xi!^V6Ox}?Rh+*u0NgO3q4AwWsA)cE_3f@uF>H8Nw#iNL;=amzby2$E zx}0!vgIG)=(wt58e5f4T$hLFG*9Y(WS6?3+X%ON*5A=UBr&Hy9kU3JGeB~scq=GWy zVSSmb$$X1wl(py$IpHU7CnqOpYL^$-=33Dk)0k}On{Fz#Czqdi9*ozY(KTJQ?0D3| zYW<4IUw-ex_g2v8GySDo{P3C4#gLDc#1k&!F;l#74v!dBgnc()CU}%k)*lV;3w}3Y zO&TOGjs8FnA2jr@k)9g1&onbePntdt3IC{;7F|5{0%%STzF+J)Ed#HBD5_@QOeBw8 zN650GWPxPOS}d_z_3WDPvtcEzBrF7(E05TGCJ2dB+vGyd76AY-lx56zzTP%3Cj^JU z!Z7yz$)_1hWGO>N21M|v??^n45M^XZn%e@;Jze6xlrfRns;~Ijal!6YhuFg86w{o~ zyMbG4h=H?}R1xrS3Vj$Y$^YA~zGnN{MxUxI^a}pt%HjP=NKGHD7=NON5JlXej#gvH zT$(|PY31Z|l(u?7m_v{<g`k_qTVT_diz3B)mQa zoX@zYK=f~|_u)9D=pR1%6mvFAnW_eL4&oJgflf1a)rkx%@Yr1y&U@S;8x@lf1iYYR zF7=rI7CfHsC$hNaedZxuaE>#`G6I?tPL9r;Q--tfAaptxy7veR%T~}@TTJ~2oogdkzOfDIFla`&D-GNkt~TC?DUtL~>oRAQ32wVr>{HLyG| z{6HS4Q&otrVsnr(1RuwmAr%sg03qRuL}MoY*%F6D!Uh3|uOc~^2x)A|_VXsiqhn02 z_%TsA0FuCmNzdX1k+ooJ^8T>W@y?4}Z&qvV`mPBa^oOd!xtZWv*K5dnjU>zmnZaCs zKHs6aUxs<|L0w0Dqu2a1)==i^EcD6Wwki9No4kzmsl%1}SzMO0#bc)jpoUO=#2 z=dFBFYz!hA%OR*J?z?7x4wC6-wLeYb-KY_~QE=D6PKB92(RdE0S(;W?AhLAFyx!5v z?6%Jw00b1Ae*gx&GvW|KYXK9$3e>*koj!zXKb~trx_G4Ja^EUzn7}{OJUf{=z5rPo zpd4@=LmNrR;F687JI)kzm2?%#lsYruvNNFo5m)u3MyWZ&t>K7rj+SMmIA8GnIolA; zJPaW|_5Ry}vWj*#NS7(tUh$isAV9L~3Oo&yLFEr-Z(aI*O519;C{^ZIA-ie zWk2rrZ{)TTzva`d47)G)|3OZ|sX#A%>l6GBa;&&gA1AdVkVb!CA_5H^FOr=2RG}Sa zBPAFZ0a>32zezn75@IB~SmfNeQscOI@=SR%YtB48D&UKO;T4lOoN4uwT*|hinF-~b z`a-_Ex%S<2kG|Zl*U~@7_;h+z`^V>!{hb0~();NC$1>F-r_gDLEao9;V1~Dp78gs3 z^9GI)yPMNz5MM@2U=+m0eM|OCE>HMYC&M0BV^9WMPLgp%{Lq%G(}3`(^$HPs>j4b=8mC1ApA%3HBu$gy-V zbU-_mV4}FwAz?C_PO`K=nS3F8iny~(?VI}P)@ov$vS*Bh@PgB@W3V4$!}N>wI_5)fXEeoFj<&UnHKS?rheQL?_$^XET2BZ&i}M z4C&0EMWPx4p*?iVD5*WGxqt@LU|&d3%=~f_z;vTdYb903M{phn4}x8)AE?;S7KWaGSOxK{w!cdiOG)I2|!#X|@Jph`a8cG7o7O!a-Q0E4egP&5g7!!Rv?&VYTa5X5!)>~t> z-;@m^aSR8jS1=3O zg)bqPT|9?<_k0gw43fg!Ovuq^SCm&v_V{w;w1dW0^5}F*Fm{soiXm!aokU=2KuM=Y z)j6YXvl}8|Bx#A}>rF=lnmh1}YyIJs1)6EovtwqZ!7 zgiUF)a7X0 zCK0zCXfbJjn{u)d$}y{$tH$vPH8dk&2oE)L44K`uc~~BGVwv}{Ptz*}aUr|l=TXxVTRL8XEy4m@Ya&rCdFRz#bl-JQLS2=; zt|@1yop>=n`<4UdBN`zpnEj-2TO-oflk>nO17PFS$ON6#t$+cA@rZj=eiI_Ls+R#) zQtZ!;EvV&+G0>4nCQT?sk^;*5hXc{m&e~1+v*P*o{T^OWhhAum>-Z({tm62eIdA_BSlPY-=#!P*mk$~HH%B4~%-7}d z{*3;EoGiY=*7X{o^@!KnxFOd}XQ&+S^aW)O_~wU#6E_PPiya4h>Vh-ttsA%PeA_)q z?|eO~Lp!m_pCUKKWXJyY4;gy)RF;~~5xE&wJEpa5*mXLadPmnW)w#)WLeng0VfALY zia=ZQVvF4Br7!4P&zi#`N4#I0%pC9oae$EsyjUR`%i_nNDR9gJ3axykAmveU=ludi zanb%nsR;%{%@+1DDKzp&r(;F>O<6GAl18W7oq#N+pyFq0q7BfnW_%>nkp4x~qmO

zff@}mk1W<&Dw{CIA zWcAK~oz557mvb=DP))NL1Uejpx1DU#SaJOxa{A?Z^ofE?uwVpbP~z5Y-TkNHFvSBDa57!|WP7XIHoWWlSGkdBNt;K6zpHL9 z=8e5`O~3DCUDvu(60shlDS@*r9`|@>wpex5Y2c<XYyWHtd{niweG-+M604R}N!npW;zUKr;d11gM> zA(&4)rl_FhW2u(}#}h~# zSjkT+R;oYMrJ2)?FA|=V)I31_M($nWce)QX_U$RwRJ{-D(~1CWz`drBlYl6 zGB)Iip>eQlwQ;Kdd|zbG((D)}#b7Rkq5VN59^*WPvL>@g1H zxNo}k%L^q@@1G7HN*X&Fu_OSkHXP*ED8S;ehyp?|t)Qa^F!Kgimr2HVg^XSol_ck}zC2GFVQsGGGdp13(NX$}>`+Ddc4Csx{nPdAPI?SdL}4^W}$=mUu2ncvD6W5MX^(X*T=r!=XQ$J zjB$4Um_i0cHq7_%em0m@WK?7L$6K0g}y5nRM9wQl1P__ra z4~^$2j{&Cwv*)gCW5|ipT2r@qo;ht&L@&V!Ewfd__+;-wVRB~m1_MiW+(XXPi-0$c`C0V?xBp2@~*88_?`5waFB23NM3_RZH~$gzUvg6 zdC!pRb!Y!6Z3iGB2l{@-hMOHq1ya~jD3UR_p#S!BUe@)OISYkZ#ZK) z^=2TdY5d)*^c%KhPSrCPy!hd*o^0@FT%?wuAcT2BnQ5lLZ0iG66%=_AbD8Doo_$Fb zz&<;;I$V{Xi_lxHisjUNo3=SX1(>o(-?Bl0rr=QMAetzHjV=Pv;xKJ=`;Z7e@}2sN z%febD`2E{X$x#TrJiN@Ao*|-Cd0wUU7yPe^uOw*8}W zQq_mZ{jV>lF6WZA%D<5ueQm&ic6id#$KX!V??|FR$^81DxAyMe$=Rxl%@hZ`C z+$XD68hc-z8a!2J<@1isL)|w26!C`BiP5Lmwx4xUTcj8KPT4#UFwd8vAB;O?*8M%F zkt}gvFr!_4m?T&D^>_LMz_{~H8I%T+pQD)tqsbu9^z!CV+5QMH{F$)m8jS0qG5P7& zAD4pF!g)1MLd3I}qT=IMpyOJwYZSF$GxoAIa_Ddm`wG*0j#0+)fhD^e&(?r#WipZ} z7K?r4IP58wR=)@C=#@{_gVK^IE)D42POZnE038nH_O=^HMOUwt)N+9-X z@23CI6hhIwN^kKu1$uH15v;E{+50M7FHdq}_8Rb;2*)Tmk4LyY+Byg-ty?XX2+q(? zcXX>NGM~l$ZD-T_j{rS#6yrEPowF}ScGVw5e@%JnXk9>xBj|XPmH`NgzyLZFOb0~! zN)!3Psw@S<63-1HBai@a&`{%56)o5Nkf<3=P@|qBTtR9#8;iw_za)>pBd}BU3_KH5 zBytFCZFX|V45*=H6?M{Z(g@JY7tQc4CQ|Ig`FZTocp#w6FUovC3{Z+7yHfy+M8PZX zm5L;;*lY@mSU~|dD79H}T#Di-ciB%s64(K^R5JU^L;`!nVU#c`;@~i;!r!^u3VWrd zF@uij*QvVzZHilQ|DgIy#eyqkO71sudu-o$4pr`deK}d}B8~Kq1jZkgTRiWYJas#W z{x%5Y=<|&Rr#PhD?5xF9g_hA+ zl#;3=oic=!2Bkc?FDN#0zVIzl7+|fW!I%3&3WY-mLD2eQpmOIFJno@ch#1S36@}DIgZP&LS zMpRDeWwBjV9U65f2KYbNOOk#bv8n`e{M4CCU;pyXHPLH-$G#QyOXJe+jW24tr$bCd zU4l93)wx4OiQdXDHYay)Tz{~eY^1AQcj;7NX^XD>^#{nJq?vyUBnS|oX*mLh2dd8? zA$GC`Uqop%DG#z9E%@Ep;S5?8RYqUf#8`w$Ky&enhK3fF0a-m^Xn-|Z9*7pzE8rJn zp#U*}?Doz@48frfWB{G?wg#yw4%#5>Jyn&XZ}LOrSye!{ zfN39VvTME@;4((uw9`*B9raDg-<`SE&^mwKG8h=U)Zz$&agIwthsXnvG)cC8Nnp$; z(ZLMsJ@<^Ju%4?PG$XH-%Ragp9{6yY$84xQ!h@0U;lBDLU3%CX0h1zvJVh0e(b3V& zJji4mS1@{#o9aNl82->?oS}$9Z?hw1L*AC+j&Zx9TZVR!BSVX@&8qNUnzz{s5 zaMuWBMtMlZMz#BeQUDeoXZpoJ?M8OF>WIQvw7fun|B0l2t>-~@N#;b%Z{&6pzm@w~ z4s>7M`44i9CEAC+T*e>dfGDK|;@WwRV7L5F1;S@0Ntf#RKCkYc$zp9_lfYQxC*;3S zA)%f==iHUqY)_lI=Du%8k_KH(Z2hKYq-T#fwJROpfieocxu18m=#{L1(Y&IcRmL#~ zM|}Z~FSEA6yVfsL5#ohmvJ=o3q@>}SJz2&!|1_3z9AU4A1&j^UA6^C^&oD5eIf>zk zI4&s=lZ8MJxKoFbiXgV4(H>UTMzLF6fty7^h9zc70M)y3>z^wZDgBSaRz$apQHzn4LNKg#te3eQszOPLP;$85t{63KxSIv~U2 zQL1}&))~TMm$L;byQL?ALNY9xJjwzapFD-~qfNN$q_U^eAWU2SV9v~T`W=+VR3);) zSBmLZ<_%*MrMJ4daE`uV3eBW}uGE6t+!)LO}p@QC5uUOeuDzpSmjFkpNf>g9_|-_WAb`)! z*z%QOewu;NyU@ZFR{6_#lJ{c9+fg=AGMNYv2p(s@mJSt$v8`1w;AC_sX|x_ zFL^i$@epHsin43+SP9F){F;<<$<}$fg|q4xREWQk+hqHu?PFzl_tMfIQD3|T?b3<_f0gL!gZ`eskl?5MtsNT0=B|MtU z+?5d)JJS1u4qGUQ^P@SL{|+4>P^Ann1QOCarDrp$s;EGix+$R$iy@oPxfy4wls z5&K#tY|3Mi_AY->Xly(l>AU&d5bi0{h*nhXN_93{r%$o78Jsp`EhylHiDys%ByR$@ zR3AV$J`|?ZA&4901V{?p#P8aF6Y0#p-z_t~rtGa43Oht4DHwh}mqS43jj|z_hsPXyJNZl2w%M1f zr{f#ugsJ!QPD6*w?LR6N-E5VAd+axIhpAw;e^bHOKgi)CO7znG{)-$b#OXOqo9ni@ z_I74c&d~7~<9nth2gc@+QIMq8J1;bXwyt@Ch(gSkU9Dl4+o+M7ZRZ7-U~2f>_W`3J)i=i*fLqoJfOl#okD$F)E90tlfPOX4baUGG<{gI+j^2 z?Nnqm9lbH1X=rvw2W)SdWIfAGQR0Fh2CzZ0GGF9_B~7Tk9{w;_FK-EMdr`kK$6B&M zfw0`&)=o5+e<-@3FetsbfFW#NRbUZgsj}2Uwi(LfZAUmhk@ya_0V!rNF;>=qOiIkX z+Jm-*tbl3*cxVF0o?gRk9D4k;HPOJ9|LNV%QRieZ1?QkTPLu2SaqP2Klb$sHjDh|f z$5qn)st5N_+KaFfmcXdr^9jb`>-Gc&8`^W^EWZrajfUAUjZSxuj9#P?$@ z@vgrf=(GVW_>b~Bp3jvCdfXOJqguz=@sEv8{_8EvWEh|IrT4g8Z%sqN3(~a3+jl4S|^)_lqQgLt7?ViZE-W#Td#EJ3Zf0Z zXD@kX7pj7=TbY>&;DDK?BhB)!UO(cIa?A>oDel{pG=-qaV;IYKdK1aflYBy!PzW;yXONg# zLw1T~IM(KcfTbpemEXAou+t%qA#rL)g$cH+;s6hrgbATa4pocrCD)M;yx#pqLaDZ3L}Pd3(V42h^`Gb>wH%tpFD1Qs@(ch2 zLhg)Qg#o4OVqVfbM=xSAI)z7^2{&}q#o~Eq;G2L!F+Z)6xUr=7kEioqts>@jHe- zak$}i=r#Sj`+&_Y(o1*GW&A;I(7V8F{q42|hb`;kWZvn*OI0r(2&H`B<4X`9W)n^t zP-O(rK!dlzf$8s_U*j0@YHNv5C*kCL$Gb5}@G{bg)vcBI;3f%yu}F&7L&5%jlup0L z&x)Cw_wU_3cC%?i4W)JD>BIADqzvWsszcTwY-fkgmibCSiSBl)dI$hF3<)1L7pg%< zC$wn8O!78RdE&NfyPygo*VHM}vBM4eI(} zY~Xk%Ms?%%d^U%t3CN0(&1!{-8d#?&3AV(W$Ho;{LnxpjRQphmup*r&ImQn3BPHvU zVRFUe%0(PrNDy!pfg(+UQ<8eiazJ8%wf4p}m3*RCPcC0@xw%DdS}?Q@5fWZz11M+p znAZpiVz@5wJrNOA2Pf!Nzby7hrFgxO@q8kfnCy)XFW&S!W+4hgp0jQIKH|eS%`Q6N zzH!FhW+8w~Si3JT{XtH8y+|v4 z{qy1SlMb@nn8P*Xmi;hWBv(l#T-#W@u zmQnd+eX-|yebq&dnQT&9@7Y65DcIkgRPU{o_8|sX3)QAdOK4M@l-~t$-*&Sxrc92c z7=OAde}WfjQPc5UBV3=y%D{EnC9zqkv^J~ZBVwKV+Ntd=((LCJ&Y*S#0AO_##*aV? zUV{noyL$l*+Bk#=4#9l$|A-azvo{b*H@DhuiEjI?=oX}1Y|~FrW&x9vv4t#L8XUw( zEoH1C%(yrSyW~*%PjGZRP0~z?GbMW2R&2l1+CIV6i>1?`zR&%Yty=bJp zqt}S?>sw`NhJyew4$946o}gB3^Vif*BZsFPe6LRVJ&$k>y+0NzG$bnc1{D-}KfG>u zGQ55_ugbH)*SGEy4L;P{F{YN%rxEp8J`6yl85h(&FzW2!c)f&078gic>S;w?bBo`{1ec3kKJ}}9zWPF!dRz!D+ zo|U|KecptS1T~Q%@SxFGb?^k*_~UvTc0ymgq;#*s4u0;Lx{)1$s_ht-O|sXjiamMepoPYRL^ZogJlUfT{Q}tw^eqgE^yohsjg6!Y;*An`44e&xFXf2Pt@KDY z8Rt{>H5`t|nTSS;`tc~+%4(+%EL`8?X#88wy^i4WOr}7^*1d{FFrC5+4BY?FT;nmC zC9&@K12GWLCJ4J@2c@mu>Vc2VD>zmLqGI zo*)%XV6h`pYMVXkYCTK^gWdbRQ`@61`qN%e{X$%6zzqsrxar%APeuG8(duAf2ABfQ zs>P$dInuRu9-fF7rl=MWnam3uPRaR{m^Z`$%P7Kl#H70MeHYj)np1je zK)(vjLeq54({d$<7CULx#cW*9;R3`GmyWtDw zKTQ~ljq3rBTBVN=ZHt6 zyjA)sW*L2BwyE7@7N({4(v6`jCBcVTp-Ty!K5 zMAHX8qp1^Bj|#coDu;Y~cB^_}?IO4RO4rq($?&^&CFa#`GerCOC#``mZ7kaE$Scl^ z_5AXFF_L$_y^rHOR5Fb8GfVk(|E!>8Yx`jOkg#~pd^8mx!!v6weE2*S4dxN8<>gCu z-x=nRA9v)U2B>h~Y3;S?Yrh5TUopr{Mdl*6dSwV-W&48;lzM%$ra7ilq{LqiYuMc6xIiHcb9_OUmjRNW0TCRkZnL&dQvKsPHb6qyG`bB> zg8Pcc5jNF#86XM%e_|+A$uZ_yS5X1v`2NDI)ln!A?|0c^9|kYLo7#Mt=E%HFZ;osK zt#ZqW2RZb|l7;`xk>H6X>W7aM9*W+-cJ+t1MW)<>7p;rKvGz3dT`SVyRz+jK6pn5V zI9xwy&#BqU_J7b7m;H2sEGI~Tj_-}*5~NMOJ>i7n!DMoR)@^;eVWMrI3L@J#7YDk$ zaRDDEVA5V@kzu%Dq>We2T*`XTuiUv6I-t#1Xur(RNv0xU%NURat(d7Ync;}$MWe;eE(P=Gell0(-2IH!=u!01T*>|X zRP&rIpJ|O0@1$?=x-zef3mwY!;p5fIFs(_{j|Nxktkx}k_RH@J64a2dys-KH@a%b$ zITvRi|G@B`n~t%LsapwtUR#5IhkarBpOUT}o4fUN>X0sRfHM)!V+1N=_6@Xa6`+CR ziuiFM6($eRvetqchv>hx+-E%cu+F_my^rBPAJZ=8?DzU4Yov>5R65s}&yPl#;vI*8 zvC~`ydi_-9k6iy%H~F%yt!LH?nr$H*?$(Bax}uy?F3luBdyKF& zRy)oB33A0fv9K4dod($@Y4FTK=9`j|Ry;+AJhQ9U1bJ+Jo|0x$rl;IlKU?b7BTin) z^s_{e&wLr-5#wB}dY4fVvk)!9S###()7X2wHyv{;S}rc2F5rWkP4{}9nDd;qkgL&p zSKZxK)#V$|4UKvRts=~KG`}%YdMM{Tsj#r|xYJ7FW0v~YjjV@v8$CF37U;wpjDWYL z!TaHNi|N8C=1$`^h2X!gKcBx-7d4@On4UZRSN$@GEZ7D(ELXS5z1X%2 zheaFoF{YAoXjn$=;I6cFqS?^gMgh493Ghp}`1d1NvP}itDvfN(M4*Dz3@Clkz`?ZQ zO1z_~pS>eoUJ+d;ImVCCVi_t~ks3|%u7LFQk8i$1i$WFW9r36}E8}PR2xGO18Ut%{ zv?uVG#~@G3T(Jj*C+>SlcvubFKaV|~+;O7+{6=mo@jJ@L((r!`>ye?7!`h{fj6cX} zj<$J)Gw#S?9?Dhf2&tYiv+F`7y028KxVTqbzg+?;Ka%C&XdBqbW8$t8Y1Ln+I|=nD zxktUK{yu!+{vCn+3;v_m?`2jVOu5Lohwql;#&=j+K);mQt$(__zo>LPtdHGeh#9kUALInXMgjXWaiiNu1o?#O^5BbXkHZRT{%dd9=_WEqD!nA#})y16?Wy2l3M5vGvp$>H3< zP-l5^uY0g>2%(BBO^J<8o{-NLWsLGF?M5R$9TrgP0mryhGm!vfbF9%5M^+NP3|Xc` zhG5C0au+uxk$}qWrd!S=oyO+=7{3zTaVPha=sut)=j|Ak!{QifeMH#X>O0LpI$9EB zLCRiyw+j4Mva4SJBc8=-*xi7BEv4Jih1;=1KfdX6Pb`McP7nBThuZO76}h1AO}uku zGr9BAM^39tI~RhE{eL~2cRbtc`^K{n#EKwhBZwH)h*4GANQ@xVNKuLyv8swv9rVPG zy@}P@yQ)-cbj04RU38q9MVED2^z`(nzwddSzdrw8ulIA^&vW0`{b_~*JD-0=G#jpV zU6Tt4kGl!Hbn>4I@Zzejw|PT%t7k6+fTOZ3i$9iU4Bq|m3iE|xbb^o$k1I+_UQu(( zMsp`J*X;SK+J9cI(4saU!kjAgLGQEx<|!=xO6nst~ea zRUQD*UvMKdpujgc0|dGjgIq{7NFj)@yd%3J_xS*fVh67WLMe4Vu}M5Q=j8U? zTZ3ao8VJg%rUu~qO&8WOAOq;l%^4?V>wVR%lr3u*C9Z)gVZ?NW3}SWLMtE>*am02v z!bt5kR`Z(RzRvqt9d6xm4$+v#oEWH@*ileqy`;tmp?*m>#VtVZ%9Op4DQ^@vuPWVd zMBe=TUU~9FuD0j8W9`ymPhOP+jAxbYzaW)Vy=(5S^3=&014~h>XcTu&dn*}sbT!mM z|8Zv)J)l$+ig&Urv+(^~N~^0Gyg;>>%ItI9h@GLl8$Ef7gl6ni=ghR9ptsD*bOz5Q zn@PA$Tbj6kk@vvLm^;4>T7}oFjGmN^C=&=Nvo{?EphZc3Gbx$i>{^dXSPIHQ>&$(uG9P4Q_#_n`TBD8a2g3V_DVcighpu=Ho-#^@KO zMa9YR{cygQaE%#_p?1_c-BcSEG0If~W@%P#C<0Gtl}PEHwMtK%MrIKxhL_E#FBl`& z`-Fy0x%pLM0v*D6zW$k`^<8-c8{%8~A>*TKz4gP}|BoEkA?(QIZvTfIO26NrKCB>fbZS-Qg#pmA|CmW|fnw0#&pyYdsUX6&%_NBv*Eqn7k&Y}!44KO--C3A>tjIRo&GKYhPMLGtlaK02_s0}% zHVFX0mWn?+kU;>KqPicfbkoMW(~*5{hyl?0SSDaV@6#j#H82T#^JwL@p60UGr`fjY zm(5nh`{GasaI~-rL+2G3rGq!Hjo^~l(~MnCvQ(!FYw5h`;NbFFH1;=c z;=uSg;Z?!Xm0`RADY;7h8kbRX-b`aA(^gYnGh~9K4KO?@mHFlJt&$R~&&2{otypyG zMgfB>A;^&WgCnsj*sJvLb{tp)1};L`Ux>O=RwXJDJ&1M|GXS2 zaVzJ+=e|z%2}wLFgCKB`Py73uWCMKB!zH~p3;-3BGTiW3#sdhP-wsU1tKvcXH`Cp1 z+A}=7NoPoz+^q=GfoZIjm+kx@@zFtc1Dm@|9cdP>8bL(~KAhu~3tR%Pu`{$vfrJbc@u z90xCXs!De{ruQ`s_G`hZ?_&_MAVl=1%Yal4v2L`T*%mNd+h>ha z>>2BP4q5rp6?}o2xmg&tIOtcrd^b=w{?xlFmRG=33UGQgZ2O*3z>sXalvweG6rWhG z+q}p#0Kana_PCxWpcvPCk`k1Dw0ejd&{7>m^$z?P-FQIl&y?!&KurfhUj@aS^594C zr|Szs9Y&QkOmYV=K!f}D`}0Ki0+7tbqM&}rK@0#Sm?}%)o5u1$;_X_DqSsc=Y2wOc zyFg2XJ_48dp)(?y5{X18=C*3V1oM=x$$~VWuk_HniIUWCTX`o>SmX=aO-NJqhu5#x zRGQ_Vqf_1fS6Dapye(8ZMzjA#PIfFqpMT@)Tw`tFD7a-jDqg#&&IHnSpf6MX#zoHR z8#shAjMlzG6iTrEXeCpTKz1F{DE1)Q)>_45wEG8!X4ep#31=aPcDS>bo@(~M?tqChcBlDI{_BF!dCa9z~1chAkr}ZDuT}h$i@~(fLiH zkWU_|{~p85sQ`O=)1}Jv;!eHrX5R4JVFUcls2~QkE@i@6q?w2YQp9trRj*2YFhQ6b z{b?GK$oNT;*U3qGWIW@m6-YBYVa^P|m-Z*zHhfg`9&7Opq3|WcBCAEG)O^rSy7l&J z54}3AUF8nWH%R}?3$e$9t3RX&1>f`UeflF=t8HgY(rLG+Lf1IwrR)ET_iLlXi@*`i z1LaJ7In#rXN-x<43%>twM$?Ef0wj#y*ohp5is@dSSPA&&Zgy37?Z5&u)>(xK{FYmajaIWIE##6SE@wMD%EP7s4YHzfGs{ZH;%=X?5mRY-g+ z%>0vRiQq=+yfeIxdsm#}j^QKer(mucAB$6X<2I{AjFs+Ml$+QrkS)#klZiYB*Eq-+0E{nxJ| zy#PMpvwPz$TB{UPx{BOJ?`FMvy@lECMB5{uSuYM2-8i$WmtVW6JCVaUZVG{_Acyg+H869%M?D8XuEE<&-u7Uj_$32q$ZrtVC=qFlX6bRj z?qDl`h4T=Xm(tWOuG;4V5xIjNQ!Ycq-nL5yQ`DPvv)pHD#WU7GN_R8K)L!qsFYo4ngTFwIarxA&C zfKH&)RhfWja@En_vNDPS)MX>@RC_i`r)c|Z2aRyZ5^H`V_mFGd#`|1(hi9PXrcXN1 zaZk4OXsS=&C9EpB!8kvT-z*v1AgSezS_)fa$uodP%RC?oQjilMtJfbmRBz)bh{Pqh)Je72!!FX0u-3*hca28_ zfHuIQ_0Pw5oD`<6&HpHsJT>`g?1OB$CMPf|E^}(-7p{WDeW+y>_#iL(uLzzX1tm;R zNN4fYyLH!-ydVxdpW8}gn(I9V5_>qRk9V(tL7pvd;P4<1d zVX5=XA=RYUy* z1O@`_V$UZgbfvnRW*q?Q5;7V=?Wtbs`Cj7rWlcL#H&DgG#;VW@K%#tr3?_dBrW!6m zP?0aS&Vxfloea_y-d%g^vl*FJTI z@P(=U5vg4E zc;EfA_Ofe&8|gDii`#!`eRBHYd*VTe{_BY7L!!AZSWx2vja${YH)zzc1{4uBXFePmd=L2tnR)b3VGuZT#0Hv4XDG z_pnL>{P|A%O1c67P0&gV7#P#N;KqU=Si1bNgpwwfr_VPJLilCR67NVK527(`pWyB8 zL7inF(;g1qH>`4Z&trN16TT1pk61JSPMdXvmxIr}oLe3wYBe zcJk6?g9(?R09A$l!isY&?8nhW+ooUX5P2Mit|l7-XNc)E#VtQ(w{tzu<+~VVSbY zUxG6;5phGF!Sx3V_m1Hz18j0mb3Im~A(m4h&IKUV{aCgqb!PE~oM%yd$ z=ktqgxisd3j;qp|RL2~}LRw$n76$%ta^i_#>>|C)6bazr;NSxCSjH!~VE37o02g9p zg#tcsrPe%$+lAj;@x;=nmcrRN%(1*v4(BC3uP>?&H9qmTba)pWtTrOIWqC!@k2e~b z^_9ND3M;5M^Q$cy;x3fYKL6hToU{q@63NGudK~d|TgaxHYFTuruDVu6Of>--6GIN% zUYo5~w5#@Qb$NZeg=u2=kh&l>bXDtg-Iet2kAi2(hX7CjCm@N86 z&(^%aM#8to^)5c? z56w5ZqGu=*TBAQtjOyZH&)t%vj=|cY$qhQuKzVh7a1f00vkl;&5&kuNM5_V9&tZX{=nwzrns$xy9Bd@UcdcnRI8 zGBHC}QAGZIVU^==WLzHr#(k^hyQ7A3(RxjL|G-5Y^jA|`9`0m^TOWp@?->=6S4~|W z`R?TYZRe_#I=Gyv*_Y8=ohcE$u{X5=wUC!oqSlms8&sO)JN4mNhiNkIPuOhUPvch@|tM-&WJHw|L+2~iNJ@${qo zF%br$bMl=*BRnDb@yq5GrO^__V%Znr>b{&@$){FlL?trunsc$Lymf00;#Od)4X|t3 z=ck;rSzUB0sJ>jHt_i*!6`#R#PSoWYysj=sZNp=8#EBQ>JET3w1D-2Zd&AADlrp*b zBwHOXYpPMImqjOGb4;_g>9#GCD&qdw6TTO8F&A6uh<3_S&>*$fKUdI%wLS3h>^B1z! mMZ6mUBYZ8?J>{|ky0X;CXv!el*OLQW+ { let page: Page; - let mediaDoc: Media; + let pngDoc: Media; + let audioDoc: Media; beforeAll(async ({ browser }) => { const { serverURL } = await initPayloadE2E(__dirname); mediaURL = new AdminUrlUtil(serverURL, mediaSlug); + audioURL = new AdminUrlUtil(serverURL, audioSlug); relationURL = new AdminUrlUtil(serverURL, relationSlug); const context = await browser.newContext(); page = await context.newPage(); - const findMedia = await payload.find({ + const findPNG = await payload.find({ collection: mediaSlug, depth: 0, pagination: false, + where: { + mimeType: { + equals: 'image/png', + }, + }, }); - mediaDoc = findMedia.docs[0] as Media; + + pngDoc = findPNG.docs[0] as Media; + + const findAudio = await payload.find({ + collection: audioSlug, + depth: 0, + pagination: false, + }); + + audioDoc = findAudio.docs[0] as Media; await login({ page, serverURL }); }); @@ -48,11 +65,11 @@ describe('uploads', () => { test('should show upload filename in upload collection list', async () => { await page.goto(mediaURL.list); + const audioUpload = page.locator('.thumbnail-card__label').nth(0); + await expect(audioUpload).toHaveText('audio.mp3'); - const media = page.locator('.thumbnail-card__label'); - await wait(110); - - await expect(media).toHaveText('image.png'); + const imageUpload = page.locator('.thumbnail-card__label').nth(1); + await expect(imageUpload).toHaveText('image.png'); }); test('should create file upload', async () => { @@ -68,7 +85,7 @@ describe('uploads', () => { }); test('should show resized images', async () => { - await page.goto(mediaURL.edit(mediaDoc.id)); + await page.goto(mediaURL.edit(pngDoc.id)); await page.locator('.btn.file-details__toggle-more-info').click(); @@ -87,4 +104,35 @@ describe('uploads', () => { const iconMeta = page.locator('.file-details__sizes .file-meta').nth(4); await expect(iconMeta).toContainText('16x16'); }); + + test('should restrict mimetype based on filterOptions', async () => { + await page.goto(audioURL.edit(audioDoc.id)); + await wait(200); + + // remove the selection and open the list drawer + await page.locator('.file-details__remove').click(); + await page.locator('.upload__toggler.list-drawer__toggler').click(); + const listDrawer = await page.locator('[id^=list-drawer_1_]'); + await expect(listDrawer).toBeVisible(); + await wait(200); // cards are loading + + // ensure the only card is the audio file + const cards = await listDrawer.locator('.upload-gallery .thumbnail-card'); + expect(await cards.count()).toEqual(1); + const card = cards.nth(0); + await expect(card).toHaveText('audio.mp3'); + + // upload an image and try to select it + await listDrawer.locator('button.list-drawer__create-new-button.doc-drawer__toggler').click(); + await expect(await page.locator('[id^=doc-drawer_media_2_]')).toBeVisible(); + await page.locator('[id^=doc-drawer_media_2_] .file-field__upload input[type="file"]').setInputFiles(path.resolve(__dirname, './image.png')); + await page.locator('[id^=doc-drawer_media_2_] button#action-save').click(); + await wait(200); + await expect(page.locator('.Toastify')).toContainText('successfully'); + + // save the document and expect an error + await page.locator('button#action-save').click(); + await wait(200); + await expect(page.locator('.Toastify')).toContainText('The following field is invalid: audio'); + }); });