From be1d594f466434cdaeabd6aa4999b25b0a6a027b Mon Sep 17 00:00:00 2001 From: Logan Johnson Date: Wed, 9 Sep 2026 10:25:06 -0400 Subject: [PATCH] test(desktop): clear the parked error toast before the DM retry The first send parks the pointer over the bottom-right error toast, which overlaps the send button; Sonner pauses its dismiss timer while the toaster is hovered, so the native retry click is intercepted for the full timeout. Move the cursor away and wait for the transient toast to clear naturally before retrying, mirroring the adjacent agent-startup-failure test. The injected first-send failure and every destination assertion are unchanged. Co-authored-by: Larry <627498bd4bd1f281a16431e3c6cce3b5c25b6692798c78672298aefbf2f8f8b5@buzz.block.builderlab.xyz> Signed-off-by: Logan Johnson --- desktop/tests/e2e/channels.spec.ts | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/desktop/tests/e2e/channels.spec.ts b/desktop/tests/e2e/channels.spec.ts index db76be349e..6bc079dbd3 100644 --- a/desktop/tests/e2e/channels.spec.ts +++ b/desktop/tests/e2e/channels.spec.ts @@ -1063,6 +1063,15 @@ test("drops an expanded DM after the first message fails", async ({ page }) => { await input.fill(retryMessage); const retryBaseline = commandsAfterFailure.length; + // The first send left the cursor parked over the bottom-right error toast, + // which overlaps the send button. Sonner pauses its dismiss timer while the + // toaster is hovered, so move the cursor away and let the transient toast + // clear before retrying — otherwise the retry click is intercepted for the + // full timeout. + await page.mouse.move(0, 0); + await expect(page.locator("[data-sonner-toast]")).toHaveCount(0, { + timeout: 10_000, + }); await page.getByTestId("send-message").click(); await expect(page.getByTestId("chat-title")).toHaveText("charlie");