import { test, expect, handleElementDialogs } from "../fixtures/persistent-context"; import { goToRoom, sendMessage, waitForBotReply, assertNoDecryptionErrors, } from "../fixtures/matrix-room"; test.describe("assistant-bot", () => { test.beforeEach(async ({ page }) => { await page.goto("/"); await handleElementDialogs(page); await goToRoom(page, "Assistant"); }); test("responde a un saludo en DM", async ({ page }) => { await sendMessage(page, "Hola, como estas?"); const reply = await waitForBotReply(page, { timeout: 60_000, sender: "Assistant", }); expect(reply).toBeTruthy(); expect(reply.length).toBeGreaterThan(10); }); test("responde a una pregunta con contenido coherente", async ({ page }) => { await sendMessage(page, "Que es la fotosintesis? Responde en una frase."); const reply = await waitForBotReply(page, { timeout: 60_000, sender: "Assistant", }); expect(reply).toBeTruthy(); expect(reply.length).toBeGreaterThan(10); }); test("!help muestra lista de comandos", async ({ page }) => { await sendMessage(page, "!help"); const reply = await waitForBotReply(page, { timeout: 10_000, sender: "Assistant", }); expect(reply).toBeTruthy(); expect(reply.toLowerCase()).toContain("help"); expect(reply.toLowerCase()).toContain("ping"); }); test("!ping responde", async ({ page }) => { await sendMessage(page, "!ping"); const reply = await waitForBotReply(page, { timeout: 10_000, sender: "Assistant", }); expect(reply).toBeTruthy(); }); test("no hay errores de E2EE en el timeline", async ({ page }) => { await assertNoDecryptionErrors(page); }); });