From cfd932205f59fbf7ca0450d681a6ee6c33226c67 Mon Sep 17 00:00:00 2001 From: Enmanuel Date: Sun, 8 Mar 2026 17:33:44 +0000 Subject: [PATCH] test: actualizar tests con nuevas utilidades y locators robustos asistente-2.spec.ts: usa waitForThreadReplyViaSdk en lugar de sendThreadMessage + waitForThreadReply (que dependian del panel UI). Elimina la importacion de sendThreadMessage. Agrega test.setTimeout(120_000) al test de threads para dar tiempo suficiente al ciclo completo. login.spec.ts: ampliar locators de room tiles con .mx_RoomTile para mayor compatibilidad con Element Web moderno que no siempre usa role=treeitem. element-auth.ts: ampliar locator de roomsTree con .mx_RoomList, .mx_LeftPanel_roomListContainer, .mx_RoomTile para detectar sesion existente de forma mas robusta, tanto en loginToElement como en waitForLoginResult. --- e2e/fixtures/element-auth.ts | 4 ++-- e2e/tests/asistente-2.spec.ts | 18 +++++++----------- e2e/tests/login.spec.ts | 6 +++--- 3 files changed, 12 insertions(+), 16 deletions(-) diff --git a/e2e/fixtures/element-auth.ts b/e2e/fixtures/element-auth.ts index a7a0718..c06603e 100644 --- a/e2e/fixtures/element-auth.ts +++ b/e2e/fixtures/element-auth.ts @@ -71,7 +71,7 @@ export async function loginToElement(page: Page, opts: LoginOptions) { console.log("[login] Campo Username no encontrado — verificando si ya hay sesion..."); await screenshot(page, ssDir, `ERROR-no-username-attempt${attempt}.png`); - const roomsTree = page.locator('[role="tree"][aria-label="Rooms"]'); + const roomsTree = page.locator('[role="tree"][aria-label="Rooms"], .mx_RoomList, .mx_LeftPanel_roomListContainer, .mx_RoomTile').first(); const alreadyLoggedIn = await roomsTree .waitFor({ state: "visible", timeout: 5_000 }) .then(() => true) @@ -196,7 +196,7 @@ async function waitForLoginResult(page: Page): Promise { } // Verificar si ya estamos en el home (rooms visibles) - const roomsTree = page.locator('[role="tree"][aria-label="Rooms"]'); + const roomsTree = page.locator('[role="tree"][aria-label="Rooms"], .mx_RoomList, .mx_LeftPanel_roomListContainer, .mx_RoomTile').first(); if (await roomsTree.isVisible().catch(() => false)) { return "success"; } diff --git a/e2e/tests/asistente-2.spec.ts b/e2e/tests/asistente-2.spec.ts index 16ae1ee..25df3d4 100644 --- a/e2e/tests/asistente-2.spec.ts +++ b/e2e/tests/asistente-2.spec.ts @@ -5,8 +5,7 @@ import { waitForBotReply, assertNoDecryptionErrors, startThreadOnLastMessage, - sendThreadMessage, - waitForThreadReply, + waitForThreadReplyViaSdk, } from "../fixtures/matrix-room"; test.describe("asistente-2", () => { @@ -66,6 +65,8 @@ test.describe("asistente-2", () => { test("responde dentro del thread cuando se le habla por thread", async ({ page, }) => { + // Este test necesita mas tiempo: enviar msg + esperar bot + thread + esperar bot en thread + test.setTimeout(120_000); // 1. Enviar un mensaje normal (sera el thread root) await sendMessage(page, "Mensaje para iniciar thread"); @@ -75,17 +76,12 @@ test.describe("asistente-2", () => { sender: "Asistente 2", }); - // 2. Iniciar thread sobre el mensaje del usuario + // 2. Enviar mensaje threaded via SDK (headless no soporta la hover action bar) await startThreadOnLastMessage(page); - // 3. Enviar mensaje dentro del thread - await sendThreadMessage( - page, - "Hola desde el thread, respondeme aqui por favor" - ); - - // 4. Esperar que el bot responda DENTRO del thread - const threadReply = await waitForThreadReply(page, { + // 3. Esperar que el bot responda DENTRO del thread + // Usar el SDK para verificar que hay una respuesta en el thread + const threadReply = await waitForThreadReplyViaSdk(page, { timeout: 60_000, sender: "Asistente 2", }); diff --git a/e2e/tests/login.spec.ts b/e2e/tests/login.spec.ts index f3761f3..d92280f 100644 --- a/e2e/tests/login.spec.ts +++ b/e2e/tests/login.spec.ts @@ -7,7 +7,7 @@ test.describe("Login y sesion E2EE", () => { await handleElementDialogs(page); // Si llegamos aqui, handleElementDialogs ya verifico rooms sidebar - const rooms = page.locator('[role="treeitem"]'); + const rooms = page.locator('[role="treeitem"], .mx_RoomTile'); const roomCount = await rooms.count(); expect(roomCount).toBeGreaterThan(0); }); @@ -19,7 +19,7 @@ test.describe("Login y sesion E2EE", () => { await handleElementDialogs(page); // Abrir el primer room visible para verificar mensajes - const firstRoom = page.locator('[role="treeitem"]').first(); + const firstRoom = page.locator('[role="treeitem"], .mx_RoomTile').first(); const roomCount = await firstRoom.count(); if (roomCount > 0) { @@ -33,7 +33,7 @@ test.describe("Login y sesion E2EE", () => { await page.goto("/"); await handleElementDialogs(page); - const rooms = page.locator('[role="treeitem"]'); + const rooms = page.locator('[role="treeitem"], .mx_RoomTile'); const roomCount = await rooms.count(); expect(roomCount).toBeGreaterThan(0); });