Commit Graph

8 Commits

Author SHA1 Message Date
egutierrez aea0f74d4a test: E2E tests para agente test-personality y pipeline de creacion
Tests funcionales (test-personality.spec.ts):
- Saludo con personalidad pirata espacial (keywords flexibles)
- Personalidad consistente en respuestas serias (fotosintesis + pirata)
- !help y !ping funcionan (assertions estrictas)
- Sin errores E2EE

Tests de pipeline (create-agent-pipeline.spec.ts):
- Valida agent.go con Rules() y ActionKindLLM
- Config sin type: robot (es agent por defecto)
- System prompt con personalidad + seccion de seguridad
- LLM configurado (openai/gpt-4o)
- Encryption habilitada, import en launcher

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-09 20:52:34 +00:00
egutierrez f3581721b1 test: E2E tests para robot test-bot y pipeline de creacion
Tests funcionales (test-bot.spec.ts):
- help lista built-in + custom commands sin prefijo !
- ping funciona sin prefijo y con ! (retrocompatible)
- echo repite texto exacto (assertion estricta)
- dice devuelve numero 1-6
- comando desconocido muestra error descriptivo
- sin errores E2EE en el timeline

Tests de pipeline (create-bot-pipeline.spec.ts):
- Valida estructura: agent.go, config.yaml, commands.go
- Verifica type: robot, command_prefix vacio, encryption habilitada
- Confirma ausencia de prompts/system.md
- Verifica import en launcher

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-09 20:43:24 +00:00
egutierrez 478007fc50 test: cerrar thread panel en beforeEach de asistente-2
Importa closeThreadPanel y lo llama en beforeEach tras goToRoom.
Si el thread panel queda abierto de sesiones previas, sus sender elements
contaminarían los locators de waitForBotReply en tests posteriores.
2026-03-08 18:33:46 +00:00
egutierrez cfd932205f 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.
2026-03-08 17:33:44 +00:00
egutierrez 1e896adeaa refactor: migrar tests E2E a persistent context
global-setup.ts:
- Usa launchPersistentContext en vez de browser.newContext()
- Reemplaza storageState por marker file para cache de sesion
- Captura logs de consola del browser para debug
- Screenshots y HTML dump en caso de error

playwright.config.ts:
- Elimina storageState (ahora via persistent context fixture)
- Screenshots siempre activas, video y trace en failures

Tests (login, assistant-bot, asistente-2):
- Importan test/expect desde persistent-context fixture
- Usan handleElementDialogs() en vez de espera manual de rooms
- Nuevo test de threads en asistente-2: verifica que el bot
  responde dentro del thread cuando se le habla por thread

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-08 15:47:51 +00:00
egutierrez 1fd836368f feat: tests E2E para assistant-bot y asistente-2
Tests de cada agente via Element Web + Playwright:
- assistant-bot: saludo DM, pregunta, !help, !ping, E2EE check
- asistente-2: saludo, !tools, tool use (que hora es?), !help, E2EE check

Assertions flexibles para respuestas LLM (no-deterministicas),
estrictas para commands deterministicos (!help, !ping).

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-08 14:34:57 +00:00
egutierrez 71d866abde feat: auth fixtures y helpers de interaccion E2E
Implementa el issue 0022b — fixtures de Playwright para
autenticacion en Element Web y helpers de interaccion con rooms.

- element-auth.ts: flujo completo de login + cross-signing con
  recovery key, preparado para cachear sesion via storageState
- global-setup.ts: ejecuta login una vez antes de todos los tests,
  reutiliza sesion cacheada si tiene menos de 12 horas
- matrix-room.ts: helpers goToRoom, sendMessage, waitForBotReply,
  getLastMessage, assertNoDecryptionErrors (detecta "Unable to decrypt")
- login.spec.ts: 3 smoke tests validando sesion, E2EE y navegacion
- playwright.config.ts: configurado storageState para inyectar sesion

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-08 14:19:54 +00:00
egutierrez d04a309313 feat: infraestructura base para E2E tests con Playwright
Proyecto Node.js independiente en e2e/ con Playwright + Chromium headless.
Incluye setup-element.sh para descargar y servir Element Web localmente
(puerto 8090 por defecto, 8080 ocupado por Docker).
Scripts de instalacion y placeholder para ejecucion de tests.
Cierra issue 0022a.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-08 14:11:58 +00:00