import { test, expect } from "@playwright/test"; import { assertNoDecryptionErrors } from "../fixtures/matrix-room"; test.describe("Login y sesion E2EE", () => { test("storageState cargado — rooms visibles en sidebar", async ({ page, }) => { await page.goto("/"); // Si la sesion esta cacheada, Element debe mostrar rooms directamente await expect( page.locator('[role="tree"][aria-label="Rooms"]') ).toBeVisible({ timeout: 30_000 }); }); test("no hay mensajes Unable to decrypt en rooms recientes", async ({ page, }) => { await page.goto("/"); // Esperar a que cargue la lista de rooms await expect( page.locator('[role="tree"][aria-label="Rooms"]') ).toBeVisible({ timeout: 30_000 }); // Abrir el primer room visible para verificar mensajes const firstRoom = page .locator('[role="treeitem"]') .first(); const roomCount = await firstRoom.count(); if (roomCount > 0) { await firstRoom.click(); // Esperar a que cargue el timeline await page.waitForTimeout(3_000); // Verificar que no hay errores de desencriptado await assertNoDecryptionErrors(page); } }); test("helpers de room navegan correctamente", async ({ page }) => { await page.goto("/"); // Esperar a que la sesion este lista await expect( page.locator('[role="tree"][aria-label="Rooms"]') ).toBeVisible({ timeout: 30_000 }); // Verificar que hay al menos un room en el sidebar const rooms = page.locator('[role="treeitem"]'); const roomCount = await rooms.count(); expect(roomCount).toBeGreaterThan(0); }); });