You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
6.3 KiB
6.3 KiB
Matriz de tests de Nexo
Objetivo
La demo debe poder demostrar el ecosistema con pruebas automatizadas. No basta con que las pantallas rendericen: hay que probar flujos completos, estados degradados, permisos e integraciones.
Niveles de prueba
Unit
Para:
- schemas
sium; - formatters;
- permission rules;
- reducers/helpers puros;
- adapters fake;
- contratos de errores.
Component
Para:
- formularios;
- gates de permisos;
- profile cards;
- chat thread;
- report form;
- devtools panels.
Integration
Para:
- active-app con servicios;
- http + cache;
- storage + drafts;
- session + auth;
- perm + routes;
- bus + orca;
- connection + offline queue.
E2E
Para:
- registro a match;
- login/registro/reset/MFA;
- subida y gestion de fotos;
- chat online/offline;
- reporte y moderacion;
- expiracion de sesion;
- cambio de preferencias;
- devtools visible.
Fixtures obligatorias
- visitante;
- usuario sin onboarding;
- usuario con perfil completo;
- usuario limitado;
- usuario bloqueado;
- moderador;
- admin;
- perfiles compatibles;
- perfiles no compatibles;
- match activo;
- match expirado;
- thread con mensajes;
- reporte abierto;
- reporte resuelto;
- cache stale;
- storage con draft;
- connection offline.
Casos E2E principales
E2E-01 Registro y onboarding
Pasos:
- visitar
/dating; - registrar usuario;
- completar onboarding valido;
- publicar perfil;
- entrar en discover.
Verificaciones:
- session activa;
- profile completo;
- draft eliminado o marcado completo;
- evento
dating.profile.completed; - log correlacionado;
- permisos actualizados.
E2E-02 Onboarding invalido
Pasos:
- iniciar onboarding;
- dejar campos invalidos;
- intentar continuar.
Verificaciones:
siumdevuelve issues;- UI marca campos;
ErrorSummaryse actualiza;- no se llama a save final;
- draft parcial se conserva.
E2E-03 Login y registro
Pasos:
- abrir
/dating/register; - crear usuario valido;
- comprobar redireccion a onboarding;
- cerrar sesion;
- abrir
/dating/login; - iniciar sesion.
Verificaciones:
- se crea registro en
dating_users; sessionqueda activa;permcarga roluser;- password no aparece en logs/devtools;
- login invalido no crea sesion.
E2E-04 Fotos de perfil
Pasos:
- abrir
/dating/profile/photos; - subir foto valida;
- marcarla como principal;
- reordenar;
- eliminar una foto.
Verificaciones:
- PocketBase actualiza
dating_profiles.photos; cacheinvalidaprofile.mey discover;busemite evento de foto;loggerno guarda binarios;- usuario limitado no puede subir;
- tipo invalido y tamano excesivo fallan.
E2E-05 Discover con filtros
Pasos:
- abrir discover;
- cambiar filtros;
- esperar debounce;
- recibir perfiles.
Verificaciones:
timerregistra debounce;httprecibe query correcta;cacheguarda resultado;- empty state funciona si no hay resultados.
E2E-06 Like crea match
Pasos:
- abrir perfil compatible;
- pulsar like;
- servidor devuelve match.
Verificaciones:
permpermitematch:like;cacheinvalida feed;busemitedating.like.sent;orcaejecuta flujo de match;- match aparece en
/dating/matches.
E2E-07 Chat online
Pasos:
- abrir match;
- enviar mensaje;
- recibir confirmacion.
Verificaciones:
- mensaje pasa de pending a sent;
- trace de
http/connection; - cache del thread actualizada;
- timestamp formateado.
E2E-08 Chat offline y retry
Pasos:
- simular offline;
- enviar mensaje;
- recargar;
- simular reconnect.
Verificaciones:
- mensaje queda en
storage; - UI muestra pending;
connectioncambia a reconnecting/connected;orcadispara flush;- mensaje acaba sent;
- no se duplica por
clientNonce.
E2E-09 Bloqueo
Pasos:
- abrir perfil o chat;
- bloquear usuario.
Verificaciones:
- target desaparece de discover/matches;
- chat queda cerrado;
permdeniegachat:send;- cache se invalida;
- audit/log creado.
E2E-10 Reporte
Pasos:
- abrir safety menu;
- rellenar reporte;
- enviar.
Verificaciones:
siumvalida;httpcrea reporte;- target se oculta localmente;
- bus emite
dating.report.submitted; - reporte aparece en moderacion para rol correcto.
E2E-11 Moderacion
Pasos:
- login como moderador;
- abrir reporte;
- resolver con restriccion.
Verificaciones:
- permisos correctos;
- decision queda auditada;
- usuario objetivo queda limitado;
- acciones prohibidas fallan server-side;
- UI muestra explanation.
E2E-12 Admin y devtools
Pasos:
- login admin;
- abrir
/dating/devtools; - inspeccionar paneles.
Verificaciones:
- servicios activos visibles;
- logs visibles;
- bus timeline visible;
- cache/storage/session/perm visibles;
- no se muestran secretos.
Casos de permisos
- Visitante intenta abrir discover: redirect/login.
- Usuario limitado intenta like: denegado.
- Usuario bloqueado intenta chat: denegado.
- Moderador intenta cambiar roles admin: denegado.
- Admin resuelve reporte: permitido.
- Usuario normal abre devtools completo: denegado o vista limitada.
Casos de cache/storage
- Feed cargado dos veces usa cache.
- Like invalida perfil correspondiente.
- Cambio de filtros crea nueva key.
- Draft de onboarding sobrevive reload.
- Draft se limpia al publicar.
- Fotos subidas invalidan perfil y discover.
- Foto rechazada no queda en cache ni storage.
- Offline message sobrevive reload.
- Cache stale se muestra como stale, no como fresh.
Casos de observabilidad
- Cada flujo E2E tiene
traceId. - Logs redacted no incluyen password ni tokens.
- Bus timeline registra eventos relevantes.
- Orca trace muestra pasos y errores.
- Timer panel muestra debounce/retry/expiry.
- Connection panel muestra offline/reconnect.
Casos de accesibilidad
- Login completo por teclado.
- Onboarding mueve foco al primer error.
- Dialog de reporte atrapa foco.
- Al cerrar dialog vuelve foco al boton origen.
- Chat anuncia mensaje pending/sent sin depender solo de color.
- Filtros son operables con teclado.
Gates de cierre
Para declarar la demo lista:
- unit tests verdes;
- component tests verdes;
- integration tests verdes;
- E2E principal verde;
npm run checkverde;npm run buildverde;- no imports desde
/testo/demo; - todos los permisos criticos probados en cliente y servidor;
- devtools muestra datos reales de los servicios.