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

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:

  1. visitar /dating;
  2. registrar usuario;
  3. completar onboarding valido;
  4. publicar perfil;
  5. 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:

  1. iniciar onboarding;
  2. dejar campos invalidos;
  3. intentar continuar.

Verificaciones:

  • sium devuelve issues;
  • UI marca campos;
  • ErrorSummary se actualiza;
  • no se llama a save final;
  • draft parcial se conserva.

E2E-03 Login y registro

Pasos:

  1. abrir /dating/register;
  2. crear usuario valido;
  3. comprobar redireccion a onboarding;
  4. cerrar sesion;
  5. abrir /dating/login;
  6. iniciar sesion.

Verificaciones:

  • se crea registro en dating_users;
  • session queda activa;
  • perm carga rol user;
  • password no aparece en logs/devtools;
  • login invalido no crea sesion.

E2E-04 Fotos de perfil

Pasos:

  1. abrir /dating/profile/photos;
  2. subir foto valida;
  3. marcarla como principal;
  4. reordenar;
  5. eliminar una foto.

Verificaciones:

  • PocketBase actualiza dating_profiles.photos;
  • cache invalida profile.me y discover;
  • bus emite evento de foto;
  • logger no guarda binarios;
  • usuario limitado no puede subir;
  • tipo invalido y tamano excesivo fallan.

E2E-05 Discover con filtros

Pasos:

  1. abrir discover;
  2. cambiar filtros;
  3. esperar debounce;
  4. recibir perfiles.

Verificaciones:

  • timer registra debounce;
  • http recibe query correcta;
  • cache guarda resultado;
  • empty state funciona si no hay resultados.

E2E-06 Like crea match

Pasos:

  1. abrir perfil compatible;
  2. pulsar like;
  3. servidor devuelve match.

Verificaciones:

  • perm permite match:like;
  • cache invalida feed;
  • bus emite dating.like.sent;
  • orca ejecuta flujo de match;
  • match aparece en /dating/matches.

E2E-07 Chat online

Pasos:

  1. abrir match;
  2. enviar mensaje;
  3. 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:

  1. simular offline;
  2. enviar mensaje;
  3. recargar;
  4. simular reconnect.

Verificaciones:

  • mensaje queda en storage;
  • UI muestra pending;
  • connection cambia a reconnecting/connected;
  • orca dispara flush;
  • mensaje acaba sent;
  • no se duplica por clientNonce.

E2E-09 Bloqueo

Pasos:

  1. abrir perfil o chat;
  2. bloquear usuario.

Verificaciones:

  • target desaparece de discover/matches;
  • chat queda cerrado;
  • perm deniega chat:send;
  • cache se invalida;
  • audit/log creado.

E2E-10 Reporte

Pasos:

  1. abrir safety menu;
  2. rellenar reporte;
  3. enviar.

Verificaciones:

  • sium valida;
  • http crea reporte;
  • target se oculta localmente;
  • bus emite dating.report.submitted;
  • reporte aparece en moderacion para rol correcto.

E2E-11 Moderacion

Pasos:

  1. login como moderador;
  2. abrir reporte;
  3. 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:

  1. login admin;
  2. abrir /dating/devtools;
  3. 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 check verde;
  • npm run build verde;
  • no imports desde /test o /demo;
  • todos los permisos criticos probados en cliente y servidor;
  • devtools muestra datos reales de los servicios.

Powered by TurnKey Linux.