From 87b28b725caf05f4ef1c7493fa2f193c797f6b79 Mon Sep 17 00:00:00 2001 From: Michael Telatynski <7t3chguy@gmail.com> Date: Mon, 23 Feb 2026 13:38:04 +0000 Subject: [PATCH] Stabilise flaky playwright tests (#32601) * Stabilise flaky playwright tests Signed-off-by: Michael Telatynski <7t3chguy@gmail.com> * Stabilise flaky tests screenshotting CIDER pills Signed-off-by: Michael Telatynski <7t3chguy@gmail.com> --------- Signed-off-by: Michael Telatynski <7t3chguy@gmail.com> --- .../app-loading/stored-credentials.spec.ts | 1 + ...oles-permissions-room-settings-tab.spec.ts | 2 +- .../e2e/widgets/permissions-dialog.spec.ts | 4 ++-- playwright/element-web-test.ts | 4 ++++ .../composer/CIDER.spec.ts/mention-linux.png | Bin 1622 -> 1625 bytes 5 files changed, 8 insertions(+), 3 deletions(-) diff --git a/playwright/e2e/app-loading/stored-credentials.spec.ts b/playwright/e2e/app-loading/stored-credentials.spec.ts index 7e1bb29ce7..e47df68ede 100644 --- a/playwright/e2e/app-loading/stored-credentials.spec.ts +++ b/playwright/e2e/app-loading/stored-credentials.spec.ts @@ -30,6 +30,7 @@ test("Shows the last known page on reload", async ({ pageWithCredentials: page } const app = new ElementAppPage(page); await app.client.createRoom({ name: "Test Room" }); await app.viewRoomByName("Test Room"); + await expect(page).toHaveURL(/\/#\/room\//); // Navigate away await page.goto("about:blank"); diff --git a/playwright/e2e/settings/room-settings/roles-permissions-room-settings-tab.spec.ts b/playwright/e2e/settings/room-settings/roles-permissions-room-settings-tab.spec.ts index d287234af5..e575f71b72 100644 --- a/playwright/e2e/settings/room-settings/roles-permissions-room-settings-tab.spec.ts +++ b/playwright/e2e/settings/room-settings/roles-permissions-room-settings-tab.spec.ts @@ -36,7 +36,6 @@ test.describe("Roles & Permissions room settings tab", () => { // Change the role of Alice to Moderator (50) await combobox.selectOption("Moderator"); - await expect(combobox).toHaveValue("50"); // Should display a modal to warn that we are demoting the only admin user const modal = await page.locator(".mx_Dialog", { @@ -49,6 +48,7 @@ test.describe("Roles & Permissions room settings tab", () => { const respPromise = page.waitForRequest("**/state/**"); await applyButton.click(); await respPromise; + await expect(combobox).toHaveValue("50"); // Reload and check Alice is still Moderator (50) await page.reload(); diff --git a/playwright/e2e/widgets/permissions-dialog.spec.ts b/playwright/e2e/widgets/permissions-dialog.spec.ts index bdaec30cd5..fde57b040f 100644 --- a/playwright/e2e/widgets/permissions-dialog.spec.ts +++ b/playwright/e2e/widgets/permissions-dialog.spec.ts @@ -36,7 +36,7 @@ const DEMO_WIDGET_HTML = ` `; -test.describe("Widger permissions dialog", () => { +test.describe("Widget permissions dialog", () => { test.use({ displayName: "Mike", }); @@ -88,7 +88,7 @@ test.describe("Widger permissions dialog", () => { // open the room await app.viewRoomByName(ROOM_NAME); - axe.disableRules("color-contrast"); // XXX: Inheriting colour contrast issues from room view. + axe.disableRules(["color-contrast", "nested-interactive"]); // XXX: Inheriting colour contrast issues from room view. await expect(axe).toHaveNoViolations(); await expect(page.locator(".mx_WidgetCapabilitiesPromptDialog")).toMatchScreenshot( "widget-capabilites-prompt.png", diff --git a/playwright/element-web-test.ts b/playwright/element-web-test.ts index bf1353ea6c..abf8ce6b0e 100644 --- a/playwright/element-web-test.ts +++ b/playwright/element-web-test.ts @@ -136,6 +136,10 @@ export const expect = baseExpect.extend({ border-color: var(--cpd-color-fuchsia-1200) !important; color: white !important; } + span.mx_Pill:not([style*="--avatar-letter: ''"])::before { + background: var(--cpd-color-fuchsia-1200) !important; + color: white !important; + } .mx_ReplyChain { border-left-color: var(--cpd-color-blue-1200) !important; } diff --git a/playwright/snapshots/composer/CIDER.spec.ts/mention-linux.png b/playwright/snapshots/composer/CIDER.spec.ts/mention-linux.png index 8098757abae5770397149ad5267657e713233fe0..712697a3fa1bf9cb85536b143d49d90506e0b864 100644 GIT binary patch delta 1608 zcmV-O2Dkav4A~5jB!3P`L_t(|ob26uOjB1J2k_GeUUX6(qmIp+C9bHUL_nN~$wXWP zwuzX`kVU3*2F#2v0!{>n^8pHj2#L{+1xGS@IA%ypr%Qk_p>6@383oo7v2~)?%~^3! zHriYJ*e#_{%A;gUSR~(1NI2)7-#wiFe)M+^9HG@}B>(^b@PF(R5&!@Im=%!J0RRAI z3D>0l_;K%d4d1tSbhfv5baZr*nH3VUEHpGEEHor${p)^yegpsj0H%%Syr*7uu{tL= zZ(v}6{NH?ieRFe;Zc5ll0001BdWMra!#v2yJS><0V1Mdk_NUE(URED3i#OLD;P(%Z zK1QhS6Fep}D1R#Iwc^u-FTAjT0001hJHtu+-L3C8$**$_zLme^Y1k{KU_OuU5^Awp z?g*8)JQP-*h0K(7(QC^ulo0>`0C2~axy#Ed?HOHU_Kh+m1e%wP&*-*L9-kXp!*1Zh zT!tw6?em=)=APrLv+mN_gK?5MZhknmFrl6Ld9icsJZBy@$H!JrwsP3EXV_ev8f?sulKV9b1 zF^a~zR(~DWs=F#{W@V)@2~trl^Ix~&x#e+-JdmDB0001Ba(uN$V{g$W3D3FeZZJK( zSe-$iNDHr&8v@^W(|_cz-?*@sO-rYq*IrPkDEs$0;>ay|7rtrk<|^||wHI=>M*5Fd z+$lQxXjx;Yis^1?tS%Tc+DbV}Bq3007{MuT-k+Ev~LU!8l9w{f4LG z9#37RrzA0Z(&A~Y{8F3N)|GB9D$Pw0b;^o#^UU> z{2HYwCjV?f!nnmH+?%fGZ)xJg~RsTf7~$_aUCbfGzJ7Y_T=_ z8-E%~F8^V28k}z#m((dLFu6*V?CAEll^-r?WQ>G(g(oJ3>#k(&&6e4^L{_IF)w$ae zm&@{*p~#k^1F2uAhK8CLQFX?)Sc&YjF6YdBx96VOZ1xV%sJop(0001BBK%-!kiBK$ zna7Mc%I|x_zpQ0LlMYHmQ_nPdP;S@mtbdZPRpP|cCC6g@2_=?FX`*RSYK_Bz+OB2| zOG|^qLm$WujN)g;F~lgE8A68#iN}`Umo8Z>5C{kW002ym9~>;Tw{-j`6O6OObie23 zR}5JkAaY8y69x|*l&i0;tCv+4rtdv+iJ{{XqyEkLcZ#@dtB))a0000cGx|wg$A5b= zNz8KrD}2bKzw}OzCJ!EoVANWc5{W3IR;6NyBr;e$oZcyM&}s?AsJiSQ-972Ba7X5+ z=rC?br+J_qyKO$QNB{r;n2az!{;f|6i~9Qd?hDk5OhE#k2)Mp z6EWTs+#Wxdhz^U66|rQFh?cI7i+@j8&Nd#GGwc9UQPLP&cvd97~XR5&!@I z7(?jm>-%wbR{DpB{ub!EJ=%jzD~6t%nKNbk&P@EyEumsiFz(V9idqnt@qcNYqibNU z6{n_G-m(2Apt+j0lj4$k{<$Qs*RQO}+Lodp$b zVqI0RR9dF#NyYx9>=4Xt+kKyfy3wZ|n0@ywK06&r*&k(Y+nU7V@dy9_08GPZ zQn%CV^*4UH+1h%erS*nF(P1h0C;vAmC#RI72iJtICIA2cFgE>3o#R@z@A$Y*b;r=^?zLc5c+ecltU0c;`D&x4 z`LU+?#^p-2>VG~NM}B^9WSz*EK7ASi004l|^e6T8QJbr4e&h>6N*Em%_2JeqTU%R; z(4L;2Z_mr~P8M}{b(8V3Jix!Guz&yn0KjMj{7+F)i6NuAy19I#$XOo~F*Kv|_{OM@ z-p`k3^I;ZU6djg-kL8+;pL-Q$r}qU*grod%YG!C&t$+H;HYqi1NR_ghUmgJf0D#d5 z8k?Gqq@)@ufg%3RF7(I)=DNA?VOBcy`rpdacSOg^qId5vQ4!xQIe96;^k{i~4EW{o zizEO505BqfTz;j!y`3*D^p-|Ozh`XMbJfuv+vd;d{VZO2>Rer`c?=&mbhFOWaVlj+ zWqHN*;(xS6*&aDZ`-MtH42Md(< z817-M@>2SsE+fMtJ2dk6HR1aeYzF}V002t@wSSs1l;&F7eDf&#{=_`6(OELmDLo|# z+!-H2Yir8tw7pencxGNosHk3%wl6;Gnno0omX{tO?Vr%WJ#yzFy)r8~K25F`1*V-& z4;}I_p4Idwb-j*NGmKiT(-Qyy0I+1oaV>_Dvt-ubu1=0v%NxPC2y;Y*9V92GE4H1hJXS?K)xNk$=!Kr@c zj9r}S7Ds4rH}T*j`1$kZTD_1D0000c0(W<*q0~_S$Z7=T;1=ZPL%4cfm$}huu<@c? zrJ^JwVb_5&jt-9S`zQC`DPr+h-Lyym000<{d8gh`&khr#;~qcKi^S9YqVr$fGjqc)Fc$w=}6y{lr;Ky3RPUm>SqSa z;+7NUxPlpY)bHrvuzGdxW%~||JZaAbN|t^oR5Ftpgx7IIC$ShiBswBW?AgN@Y=t|}`op``C0;n?d*F@F@F)YEbz z`C6-5o)mLb!FC!B*;^TTex2LS%-m@mT1{Q$!I<>oy0(E6A3Ju~(b19g-hS6=SY|SZ z%kKaH09N#W_xq+T(Kl~a+1d*7FK5q_x{ffQfnjA~yL)>6BI6<`XhlK(Spon60Hf(o z>c2jHx@nV)slP9zgtFc1*MG^vt-jFZV!`G7?BXH!#nm+uU>6rpInz$jN7YM?d|Q8Ki|J0D$>Trh5!Hn zz!;d5x`A5Fl$Oag8n&^C*G$HjkI!P?r9M7BOP2a9nKESx0RRAiF+Q_Q>Hq)$@RG74 z0000mAt0#(002x7e**vj|Nkcp+nWFY00v1!K~w_(T+?E^vko&n00000NkvXXu0mjf D9or3I