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:
@@ -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";
|
||||
}
|
||||
|
||||
@@ -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",
|
||||
});
|
||||
|
||||
@@ -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);
|
||||
});
|
||||
|
||||
Reference in New Issue
Block a user