From 49b3caa73ca254b9e6b75677238d5298cccf19dd Mon Sep 17 00:00:00 2001 From: stephenOwino <36981339s@gmail.com> Date: Fri, 23 Jan 2026 14:26:00 +0300 Subject: [PATCH 1/2] implemented E2E suite for multi-file upload, state resets, and UI instructions --- packages/upup/e2e/fixtures/baseTest.ts | 15 ++++++ .../upup/e2e/locators/UploaderLocators.ts | 12 +++++ packages/upup/e2e/pages/UploaderPage.ts | 48 ++++++++++++++++++ packages/upup/e2e/specs/upload.spec.ts | 38 ++++++++++++++ packages/upup/test-files/image1.jpg | Bin 0 -> 18622 bytes packages/upup/test-files/image10.jpg | Bin 0 -> 8413 bytes packages/upup/test-files/image2.jpg | Bin 0 -> 8360 bytes packages/upup/test-files/image3.jpg | Bin 0 -> 4465 bytes packages/upup/test-files/image4.jpg | Bin 0 -> 5311 bytes packages/upup/test-files/image5.jpg | Bin 0 -> 6715 bytes packages/upup/test-files/image6.jpg | Bin 0 -> 8969 bytes packages/upup/test-files/image7.jpg | Bin 0 -> 5905 bytes packages/upup/test-files/image8.jpg | Bin 0 -> 6700 bytes packages/upup/test-files/image9.jpg | Bin 0 -> 5777 bytes 14 files changed, 113 insertions(+) create mode 100644 packages/upup/e2e/fixtures/baseTest.ts create mode 100644 packages/upup/e2e/locators/UploaderLocators.ts create mode 100644 packages/upup/e2e/pages/UploaderPage.ts create mode 100644 packages/upup/e2e/specs/upload.spec.ts create mode 100644 packages/upup/test-files/image1.jpg create mode 100644 packages/upup/test-files/image10.jpg create mode 100644 packages/upup/test-files/image2.jpg create mode 100644 packages/upup/test-files/image3.jpg create mode 100644 packages/upup/test-files/image4.jpg create mode 100644 packages/upup/test-files/image5.jpg create mode 100644 packages/upup/test-files/image6.jpg create mode 100644 packages/upup/test-files/image7.jpg create mode 100644 packages/upup/test-files/image8.jpg create mode 100644 packages/upup/test-files/image9.jpg diff --git a/packages/upup/e2e/fixtures/baseTest.ts b/packages/upup/e2e/fixtures/baseTest.ts new file mode 100644 index 00000000..34f82116 --- /dev/null +++ b/packages/upup/e2e/fixtures/baseTest.ts @@ -0,0 +1,15 @@ +import { test as baseTest, expect } from '@playwright/test'; +import { UploaderPage } from '../pages/UploaderPage'; + +type UpupPageObjects = { + uploaderPage: UploaderPage; +}; + +export const test = baseTest.extend({ + uploaderPage: async ({ page }, use) => { + const uploaderPage = new UploaderPage(page); + await use(uploaderPage); + }, +}); + +export { expect }; \ No newline at end of file diff --git a/packages/upup/e2e/locators/UploaderLocators.ts b/packages/upup/e2e/locators/UploaderLocators.ts new file mode 100644 index 00000000..38cd00af --- /dev/null +++ b/packages/upup/e2e/locators/UploaderLocators.ts @@ -0,0 +1,12 @@ +export const UploaderLocators = { + fileInput: 'input[type="file"]', + myDeviceBtn: 'My Device', + addMoreBtn: 'Add More', + removeAllFilesBtn: 'Remove all files', + removeFileBtn: 'Remove file', + uploaderRegion: 'Add your documents here, you', + + messages: { + dropInstructions: 'Add your documents here, you can upload up to 10 files max', + }, +} as const; \ No newline at end of file diff --git a/packages/upup/e2e/pages/UploaderPage.ts b/packages/upup/e2e/pages/UploaderPage.ts new file mode 100644 index 00000000..d4b87dfb --- /dev/null +++ b/packages/upup/e2e/pages/UploaderPage.ts @@ -0,0 +1,48 @@ +import { Locator, Page } from '@playwright/test'; +import { UploaderLocators as locators } from '../locators/UploaderLocators'; + +export class UploaderPage { + readonly page: Page; + readonly fileInput: Locator; + readonly myDeviceBtn: Locator; + readonly addMoreBtn: Locator; + readonly removeAllFilesBtn: Locator; + readonly uploaderRegion: Locator; + + constructor(page: Page) { + this.page = page; + this.fileInput = page.locator(locators.fileInput); + this.myDeviceBtn = page.getByRole('button', { name: locators.myDeviceBtn }); + this.addMoreBtn = page.getByRole('button', { name: locators.addMoreBtn }); + this.removeAllFilesBtn = page.getByRole('button', { name: locators.removeAllFilesBtn }); + this.uploaderRegion = page.getByLabel(locators.uploaderRegion); + } + + async goTo(): Promise { + await this.page.goto( + 'http://localhost:6007/iframe.html?id=upupuploader--uploader-with-button&viewMode=story' + ); + await this.page.waitForLoadState('domcontentloaded'); + await this.uploaderRegion.waitFor({ state: 'visible' }); + } + + async uploadFiles(files: string[]): Promise { + await this.fileInput.setInputFiles(files); + } + + async clickUpload(fileCount: number): Promise { + const uploadBtn = this.page.getByRole('button', { + name: `Upload ${fileCount} file${fileCount > 1 ? 's' : ''}`, + }); + await uploadBtn.click(); + } + + async addMoreFiles(files: string[]): Promise { + await this.addMoreBtn.click(); + await this.fileInput.setInputFiles(files); + } + + async removeAllFiles(): Promise { + await this.removeAllFilesBtn.click(); + } +} \ No newline at end of file diff --git a/packages/upup/e2e/specs/upload.spec.ts b/packages/upup/e2e/specs/upload.spec.ts new file mode 100644 index 00000000..2714d92e --- /dev/null +++ b/packages/upup/e2e/specs/upload.spec.ts @@ -0,0 +1,38 @@ +import { test, expect } from '../fixtures/baseTest'; +import { UploaderLocators as locators } from '../locators/UploaderLocators'; + +test.describe('Upup Uploader Component - Full Validation', () => { + test.beforeEach(async ({ uploaderPage }) => { + await uploaderPage.goTo(); + }); + + test('should display initial upload instructions', async ({ uploaderPage }) => { + await expect(uploaderPage.uploaderRegion).toContainText(locators.messages.dropInstructions); + }); + + test('should handle selection of 10 files', async ({ uploaderPage }) => { + const files = Array.from({ length: 10 }, (_, i) => `test-files/image${i + 1}.jpg`); + + await uploaderPage.uploadFiles(files); + + await expect(uploaderPage.uploaderRegion).toContainText('10 files selected'); + }); + + test('should allow removing all files to reset state', async ({ uploaderPage }) => { + await uploaderPage.uploadFiles(['test-files/image1.jpg', 'test-files/image2.jpg']); + await uploaderPage.removeAllFiles(); + + await expect(uploaderPage.uploaderRegion).toContainText(locators.messages.dropInstructions); + }); + + test('BUG: upload button should disable after clicking', async ({ uploaderPage, page }) => { + test.fail(true, 'Known issue: Upload button remains visible and active after click'); + + await uploaderPage.uploadFiles(['test-files/image1.jpg']); + const uploadBtn = page.getByRole('button', { name: 'Upload 1 file' }); + + await uploadBtn.click(); + + await expect(uploadBtn).not.toBeVisible({ timeout: 5000 }); + }); +}); \ No newline at end of file diff --git a/packages/upup/test-files/image1.jpg b/packages/upup/test-files/image1.jpg new file mode 100644 index 0000000000000000000000000000000000000000..b87c045775f6e89a03a0ae59b3a91959737845ac GIT binary patch literal 18622 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 literal 0 HcmV?d00001 diff --git a/packages/upup/test-files/image3.jpg b/packages/upup/test-files/image3.jpg new file mode 100644 index 0000000000000000000000000000000000000000..10bc614af54f8f5dfb46dc67fd5cae1b93ee5756 GIT binary patch literal 4465 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 Z_W*uHr81+i$fi%?gDGyW|G~cZ?!N>S4Rrtj literal 0 HcmV?d00001 diff --git a/packages/upup/test-files/image4.jpg b/packages/upup/test-files/image4.jpg new file mode 100644 index 0000000000000000000000000000000000000000..c0224b50e719f8c0a1f8f19d61a6ec3b3fbd119e GIT binary patch literal 5311 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 literal 0 HcmV?d00001 diff --git a/packages/upup/test-files/image5.jpg b/packages/upup/test-files/image5.jpg new file mode 100644 index 0000000000000000000000000000000000000000..d69f4dcd4ddcf536c1cb28cdcf3b96f2928ac9e5 GIT binary patch literal 6715 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 Chrs3l literal 0 HcmV?d00001 diff --git a/packages/upup/test-files/image7.jpg b/packages/upup/test-files/image7.jpg new file mode 100644 index 0000000000000000000000000000000000000000..3404dece19d156201bc6365489df7fd55bef2ecb GIT binary patch literal 5905 zcma)8cTf|~vrh=2iS!OCCG;XK5Sk!J=q-fuji3Swp@URWO6a{BBveUgp?4{wG-*mt z=tx&YKtu$-sPOR3@4cD#-`l&}*}1*_>}O|hZti04Vimw-2seNOfIt8McsT$Ui-2eV zEfqBj3ky3d3o8dZJ3Hs!#l>~0{|d+7Eq1PJV*Fe@!q?c@1>^*T#U*8AWH@gqz!apF z#iV5jTyz7NX#l-I5C|v;pkM}qn1L7l0NzWE z;J-}&S3m$D1tpk@`qHVv1OS47U`iS=2m}KEJp{ar1W~dG+_nJAIbf(*5xyD44F_z3 z@;#HJQ&>#VL ziT3agEQ#hSX_k4vtRn&x03|&o*1iNRn*{LexDz9IiN!oS$^1a=1UEUi6cRnN+oeGV z;RmF@L{)Q??MyddlaLN}ibw!W1J*&7YTB%~FqAaPcUZ%;=$q@wca|H<|%~IMWR47Q4;w-D~q^$YF)5X|#U)Bhv z4+OtS<|p%$-C7EnYHK`tUOEu_EM$oG##;X=;gWi-ke!(?fMVT-d0(V00_Y3vf0}Sv z0*8o{UI!kP1OO9jt0-_{kpsI2x@n~>WES=f7XgMEA-t4W1qxRU50Ec-PP@eH#J}Jq zM}x_A+N@R@0c0gAaLJo*qVX0=Plg%S)?8t|1T-<-Kxtq~_wht#kvUYHJV(q7U}va7 zTNX#g7}6mzJ=h9)!)g2w5-iX0E?xhf@!a>S2iJ$?WUE_804w4HT*QrjgA~m|Tx+zLvwa8E7CBtDQ67t-uK`X`r`AEf9mdsDmx@>%)i&h^p%0kC7w$$n6?Mj=!maxN} zyJnF>=oB`CtNr`DV;D{Q&>BBGhi>K<$ub^q%9#EX1c&k+2KD|)L3D9&1;C?<1zq&b zo9`CKd~gsI@5`spzCJr2b2Q}F2bYOZRCry!J^K1q0#o?(RnN~(!2{Iq*^_?^526d^ z{#=K3gbEmySf{omL+_f@%7$5M_4>%LiULPHP<#8Zd(UwFu;#1$N}|GpN5u9u1yNue zcw*Ox-4u@tC)rL>Q^*e5#;6pnmpV^GTe>BmJ=LCAG(x!{+jL4xHxmFGlplOhR;UvL zPd!l2J{5;%51HsuK69nGaqr(dTB;jsk}nq&qiprAvTYVQnXOj5vs}wEUG^&fAx{{Z z{BBW>>t|SR5j&d1gF{RmMn~h6-za1HSlX9y&G!yGHbBNXffs=1`M?d)VMg@CQ_393 z0r!Dqv2w`Jh`9+$?U!^1*7;+}aaTw4xS(=Wcc~TTN!U<>M#(H=+pbqE3&VY+10Q{4 zM@q`n!DqU_2%yMzg)A%f`-|Ydh%1IReTBgbO70ds5^3f5xeC&U5(PTa_GYl>bF|zf z9{b3xDpsEzV7Qm-ZkXsrSSK71!T z7*rXQjxWh}cf4GGJB0*($-}gx=wsy0JE&hF4rOQn`JZejm}5kZtt6qPV}xhToT~Z> zXSeyoY&a`^GB%_g?H|3tKK46jU13qf3=S2On`KG#YC|gDk`pW6`?TGrRA)UraS*cO z2pnr9H!tuUtoE2pZM+FUb7u-a9=wtLuO5D7(#cIWVwJYvsYv)%!W6}DMC850FC?xb zAWKUj&hPvclks}c3D`7ymhIkx_oEquIC_Ep^M;a7>Kp~nq4$sOUBfEPe2}5+Pa_E` zZ$s^kBwO~}aYs36{SRYzyfx+c8Lez;qYmK;LT{n@WuG$7cv2LUy)9+V!fY6EwI5)P zbZXKJL>KVhzw!UZ?Q?Oh!A>MPb;5!0cPyhDnoFTV0;$?6!zr-?rVn zKjlLwRV8PS9}SS(3ToDk%PRIIq+BJO$Hi4u@Qb=Gq~zaB_tC30sv|GalzUW7k^zHS znVQxx5z`6eo8Fd}`(ia760>Y`8BoFRgI)%e5cZgQ09F1w(SZTED0aq0c)PZ&=~e7YnmyfFD6 zHtJs6m`#kxoI1Dvka@kYY-jTEUjX-d_3R^D1hR5~FC58?>*garwVrp6mxj^CPak#& zXN>bi-k(CcSv&1j1z93BI&;6_y2{4XXU2P{nq}3mjQR|=rErSAvJWwRa#j_}wy2F2 zZCK3p26b<$jK`zKS&vDCE!tbts-dOktvNgnYSG|c)G?;qwhfjZRt$59j%m2>PHtvA zTKIgmznK$A`Hf$zS61DcY5Qkcm-F;a;fR;uuMZFAUT75_s7T8?nwte0FQ1AnNXt}y zZC-Fg22IUGZk$uIwtLL0LPn&!+$xO5gp>WDO&MW_!O3bTwS6ugXG*9?&vR$!$4+3$ z@0;x2EH%IBT)f?OPj1NhiDSOs>oi;6(BDxh0nv4hQkb{W95~+PCxcl95J8WS-C`5c zm*xZr4w5RT7E5zi$6YC>9n&F`?BC<4jAl7-23T2c9x8B<|21J|gxvvU2yPULJ9Gr-(U$eayESM#QXX+q?f4?7cqY2i_AT>Giaak6jw zId#JM9QQSY`(`~gnX)arzb9GcBuLQH$j9kn5T@GeW1}aphb*->11N#AKPtA^@2-uj z#@LEbuV9aRMK}aL^+FoUqggL|0J1R}_)UvX6ghK8lLHfeeK{I_D_dS5rk$6iV zoo7}pAYX0Ek@pz!6V5xiwreS-P_|&-l*p5WNleBj}#h{CquKvqXVpm3sb8tUe0lC(m*#e!IQih3rwi9`{k+-hv69j*QrDPteU_besHP&SYFoo;wyT}zVc~Im!;TFa)%NWIpivSsl9mjT z8Rvv?9k?FaH&se)p80+<7^?nM!NC@U)DF;2a#q9y=t54W@pC)EzIMKc2#!>`COfu; zqyD>|F6em4>vRP_`PZ?)fYt(SsG5$oAF|spax?^P%DuJ``C(p-X}+@KMsOJZj>^6e zr@kCD{i}$yri8EDE59Y#cV5+m&KdypS1!LE0|G9hrm6WRUnFGW1Su*kn|G2I*4P~F z=zIkk)`>~l>9q*%{v!h6kB;4U1nU0bE4A`4jn7NHTb24;PwH$I*m(bmNn3h$d$rAz zI9a)?DXBWJc{kzH@;MPco7H*UN_a)|mW1jp!ZIvaIxNY8eGi#)=r#N_wm71LkwS|) z5)`QMGKbA=ql!;`D8><++Lc(t)52pr^|gsVf+i}2fs4fnGpSOQWHelv*)lyZMP@3XrKd8K2oE ze|Vbp0(J-aLXl8_g2KOI@-y6nVLyq^VT+edr778=iaz){!bCZYSf9huz$tdEG4(;1%ZfW zd&*VQ!wOQfK_BZks|o)g{Ay}zJ*OjT)L&+;PjT^|Q7`%kQU1wIWvOg^PmAp(d%mA1 zUq01(q~!iGvCvnk?#?vMr!)r0smm^R(M_xe)r>`1<{2Nmw*3&U`GswI)+DZK9k{5} z{a!=PBrg_HuC6S4}NrAet}YnTif{Mqy?Z-_TlX9TZN!3D&DX9s zhb=a8Mpbt3y^m_%#tg9-P83gChj;!n7=_~f^yTOur`YImDO0UsS;!aw2+3*#R(|Wa z*_cv@leqx2oyz=q>E-cb@VC%hpl4x1w!)`9ZohWc&dk=GHMcDnCF49_u-`=f7PSqH zS1pU2$Y+7fm+mptHnfS6kgDH00j4Yv8Qd0gQ* zJ!VV6D;(-8!Y5i^#l6_l_oVt2lelPsV0P8}qtA9ILV zlCwh1eqO6nx!p7&AmNV3+I6Mp&!woY#d(v>)H}_^76L z!YIt?c}+jn2y}J{E`XfR8hk@nLb!BtEY?q-eaTLp240tD-E7#+jxr>;DL*wn*-?qq zgVqPy1Vva?dW2m7bekXD;6R;gbX?LNJirrG=1bj%x_`jfS3aY3A*n zu=(O>Z6WB50ZDf+uiRb13e>{=&hZ)Osoo0Y4Y-T&`PA$?XKRXIGwz*m#(@dxw5ZoV zOlXqxoG-r%sT%c-ZM4?(@EP)4=!B)|%R|+uUGXa_Ji%-Q=)ik1%C46M;pKQ1R+d zXy6Z22VsYZ0oxteV4|e!`Nk^7^vL^H^xgSy`!Vzn&w8@jdkzo*2+EJY_~TeJjEIm6 zKw2-7gLj>w5jR69syjuLx}>OpMJHW$WM5EOLyxGlC2rQj^$O|8N{C}NyP0biXgYR@ zqSd0txDP>Uv-{1uJ6GL|aKrO3}uhEslzw=Gc#}h5$j?W~@65bD8UYCHeYxVe%KG9(9lDS03u^`-` zrhi9Wuw-o|v#POWZAk>c@W94K)vbjJ;QCQDFjjV^8y4#}BSIRN{6cyf6Y*#K+-HB%-+75)rhf}hNHyk%)4bAqWF8rGqY*0q ziHJrwaxKNZSmthCEY>RZ9Lo5X$=~94vRPba?p5s~mLU|zr(N>P_1M?yzL$C^f?VHZ zXUtE|3^${lLe2+oVjUrsk zsQ!%T5@07wO}tk5>ddsoSr|l~*^QYxj4~TQ7v2mf^eew%fda zYK87mLwsHHBTVVf(}}i;G9{s_(XMK`p=6lY&ykw=vK_DMBk>M4-UcpOkKIv zGTpO^;w8SF_l?pwyJ`F|?YC4+tz;XOEPstG-)go4FrJ7++4-&gZ?F%RP qGtES6+4&w=QZqh77?{V;EHT+33={=fqU{0_~@em literal 0 HcmV?d00001 diff --git a/packages/upup/test-files/image8.jpg b/packages/upup/test-files/image8.jpg new file mode 100644 index 0000000000000000000000000000000000000000..4c1852e34049a5ed2ef6f3d81dc7552466a0df02 GIT binary patch literal 6700 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 literal 0 HcmV?d00001 diff --git a/packages/upup/test-files/image9.jpg b/packages/upup/test-files/image9.jpg new file mode 100644 index 0000000000000000000000000000000000000000..5f83bf22eb49e6c259eb1d3e8061e3e32ecfdf04 GIT binary patch literal 5777 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 Date: Sun, 25 Jan 2026 12:46:57 +0300 Subject: [PATCH 2/2] fixed hide upload button on failed upload status --- packages/upup/src/frontend/components/FileList.tsx | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/packages/upup/src/frontend/components/FileList.tsx b/packages/upup/src/frontend/components/FileList.tsx index 49eff877..16434a1c 100644 --- a/packages/upup/src/frontend/components/FileList.tsx +++ b/packages/upup/src/frontend/components/FileList.tsx @@ -88,7 +88,8 @@ export default memo(function FileList() { classNames.fileListFooter, )} > - + {/* FIX: Hide upload button when status is SUCCESSFUL or FAILED */} +