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.
This commit is contained in:
2026-03-08 17:33:44 +00:00
parent 85e79b11fd
commit cfd932205f
3 changed files with 12 additions and 16 deletions
+2 -2
View File
@@ -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<string> {
}
// 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";
}
+7 -11
View File
@@ -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",
});
+3 -3
View File
@@ -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);
});