workspace/projects/gamilit/orchestration/analisis-modulos-3-4-5/TEST-CASES-E2E-M4-M5.md
rckrdmrd a249c99be2
Some checks failed
CI Pipeline / changes (push) Has been cancelled
CI Pipeline / core (push) Has been cancelled
CI Pipeline / trading-backend (push) Has been cancelled
CI Pipeline / trading-data-service (push) Has been cancelled
CI Pipeline / trading-frontend (push) Has been cancelled
CI Pipeline / erp-core (push) Has been cancelled
CI Pipeline / erp-mecanicas (push) Has been cancelled
CI Pipeline / gamilit-backend (push) Has been cancelled
CI Pipeline / gamilit-frontend (push) Has been cancelled
feat: Sincronizacion completa workspace 2025-12-26
## Backend
- fix(ranks): Reordenar rutas en RanksController para evitar conflictos 404
- feat(gamification): Agregar MayaRankEntity al modulo
- feat(ml-coins): Expandir funcionalidad del servicio
- feat(teacher): Mejoras en dashboard, mensajes y reportes
- feat(entities): Nuevas entidades admin, educational, progress, social

## Frontend
- feat(gamificationAPI): API completa para ranks con endpoints
- feat(RubricEvaluator): Nuevo componente para evaluacion docente
- refactor(admin): Mejoras en hooks y paginas
- refactor(teacher): Mejoras en paginas del portal

## Database
- fix(initialize_user_stats): Agregar is_current y achieved_at a user_ranks
- fix(notifications-policies): Corregir RLS con JOIN correcto
- feat(friendships): Agregar columna status con estados
- sync(seeds): Homologacion completa DEV <-> PROD

## Docs & Orchestration
- docs(api): Actualizar API-TEACHER-MODULE.md
- docs(frontend): COMPONENTES-INVENTARIO.md
- docs(database): VIEWS-INVENTARIO.md, VALIDACION-DDL-SEEDS
- Reportes de analisis y validacion

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-26 17:53:38 -06:00

10 KiB
Raw Blame History

CASOS DE PRUEBA E2E - MÓDULOS 4 Y 5

Gamilit Platform - Test Plan

Fecha: 2025-12-23 Versión: 1.0 Estado: DOCUMENTADO


RESUMEN

Este documento define los casos de prueba E2E para validar el flujo completo de los módulos 4 (Lectura Digital) y 5 (Producción Creativa), incluyendo:

  • Envío de respuestas
  • Validación de estructura
  • Integración con gamificación (XP, ML Coins)
  • Revisión docente
  • Otorgamiento de recompensas

FLUJO COMPLETO A PROBAR

Estudiante completa ejercicio M4/M5
    ↓
Frontend: useExerciseSubmission.submit()
    ↓
Backend: exercises.controller.submit()
    ↓
Backend: validate_module4_module5_answer() [SQL]
    ↓
Backend: exercise-attempt.service.create()
    ↓
Database: progress_tracking.exercise_attempts
    ↓
Triggers: XP, ML Coins (auto-calificable) o pendiente (manual)
    ↓
[Si manual] Docente: ReviewPanel → RubricEvaluator → grade()
    ↓
Backend: grading.service.grade()
    ↓
Triggers: Otorgar rewards finales
    ↓
Estudiante ve feedback en dashboard

CASOS DE PRUEBA - MÓDULO 4

E2E-M4-01: Verificador Fake News - Respuesta Válida

Precondiciones:

  • Usuario autenticado como estudiante
  • Ejercicio 4.1 desbloqueado
  • Usuario en rango Nacom (500+ XP)

Pasos:

  1. Navegar a Módulo 4 > Ejercicio 4.1 (Verificador Fake News)
  2. Completar 3 afirmaciones con veredictos (verdadero/falso/parcial)
  3. Agregar evidencia para cada afirmación (≥10 caracteres)
  4. Citar al menos 1 fuente
  5. Enviar respuesta

Datos de prueba:

{
  "claims_verified": [
    {
      "claim_id": "claim-1",
      "verdict": "verdadero",
      "evidence": "Según biografía oficial de Marie Curie"
    },
    {
      "claim_id": "claim-2",
      "verdict": "falso",
      "evidence": "No hay registros históricos de esto"
    },
    {
      "claim_id": "claim-3",
      "verdict": "parcial",
      "evidence": "Parcialmente correcto pero exagerado"
    }
  ],
  "is_fake": false,
  "evidence": "Fuente: Wikipedia + Enciclopedia Britannica"
}

Resultado esperado:

  • Respuesta guardada exitosamente
  • Estado: "pending_review"
  • No se otorgan XP/ML Coins hasta revisión docente
  • Aparece en lista de pendientes del Teacher Portal

E2E-M4-02: Quiz TikTok - 3/3 Correctas (Auto-calificable)

Precondiciones:

  • Usuario autenticado como estudiante
  • Ejercicio 4.3 desbloqueado
  • Es el PRIMER intento del usuario

Pasos:

  1. Navegar a Módulo 4 > Ejercicio 4.3 (Quiz TikTok)
  2. Responder 3 preguntas correctamente en <30s cada una
  3. Enviar respuestas

Datos de prueba:

{
  "answers": [0, 1, 1],
  "swipeHistory": [0, 1, 2],
  "score": 95
}

Resultado esperado:

  • Score: 100 puntos (o cercano con penalización tiempo)
  • XP otorgado: 150 XP base × 1.10 (Nacom) = 165 XP
  • ML Coins otorgados: 50 base × 1.10 = 55 coins
  • Bonus firstAttempt aplicado
  • Estado: "completed" (no requiere revisión)

E2E-M4-03: Quiz TikTok - Segundo Intento (Anti-farming)

Precondiciones:

  • Usuario ya completó E2E-M4-02 previamente

Pasos:

  1. Intentar hacer el ejercicio 4.3 nuevamente
  2. Responder todas correctamente

Resultado esperado:

  • Score calculado correctamente
  • XP NO otorgado (anti-farming)
  • ML Coins NO otorgados (anti-farming)
  • Mensaje: "Ya completaste este ejercicio"

E2E-M4-04: Análisis Memes - Estructura Inválida

Precondiciones:

  • Usuario autenticado como estudiante

Pasos:

  1. Navegar a ejercicio 4.5
  2. Intentar enviar respuesta con estructura incorrecta

Datos de prueba (inválidos):

{
  "annotations": [],
  "analysis": {
    "message": ""
  }
}

Resultado esperado:

  • Error de validación
  • Mensaje: "annotations debe tener al menos 1 elemento"
  • Mensaje: "message no puede estar vacío"
  • No se crea attempt

E2E-M4-05: Infografía Interactiva - Flujo Completo

Precondiciones:

  • Usuario en rango Ah K'in (1,000+ XP)

Pasos:

  1. Explorar al menos 3 secciones de la infografía
  2. Responder preguntas de síntesis
  3. Enviar respuesta

Datos de prueba:

{
  "answers": {
    "q1": "Polonia y Francia",
    "q2": "Física y Química"
  },
  "sections_explored": ["biografia", "descubrimientos", "premios"]
}

Resultado esperado:

  • Respuesta guardada
  • Estado: "pending_review"
  • sections_explored validado (≥1)

CASOS DE PRUEBA - MÓDULO 5

E2E-M5-01: Diario Multimedia - 3 Entradas

Precondiciones:

  • Usuario autenticado como estudiante
  • Módulos 1-4 completados

Pasos:

  1. Navegar a Módulo 5 > Ejercicio 5.1 (Diario Multimedia)
  2. Crear 3 entradas de diario
  3. Cada entrada con fecha, contenido (≥50 chars), y mood

Datos de prueba:

{
  "entries": [
    {
      "date": "1898-12-21",
      "content": "Hoy hemos aislado un nuevo elemento. Lo llamaremos polonio en honor a mi amada Polonia...",
      "mood": "esperanzada"
    },
    {
      "date": "1903-11-10",
      "content": "El Premio Nobel ha llegado. Pierre y yo compartimos este honor con Becquerel...",
      "mood": "orgullosa"
    },
    {
      "date": "1911-11-04",
      "content": "Un segundo Premio Nobel, esta vez de Química. Pero Pierre ya no está aquí...",
      "mood": "melancólica"
    }
  ]
}

Resultado esperado:

  • Respuesta guardada
  • Estado: "pending_review"
  • XP pendiente: 500 XP (se otorga al calificar)
  • Validación: 1-5 entradas, ≥50 chars cada una

E2E-M5-02: Video Carta - Solo Script (sin video)

Precondiciones:

  • Usuario autenticado como estudiante

Pasos:

  1. Navegar a ejercicio 5.3
  2. Escribir script (≥100 caracteres)
  3. NO subir video (opción válida)
  4. Enviar

Datos de prueba:

{
  "video_url": null,
  "script": "Querida Marie Curie, te escribo desde el año 2025 para agradecerte por tu valentía al enfrentar los prejuicios de tu época. Tu dedicación a la ciencia inspiró a generaciones de mujeres científicas. Gracias por demostrar que el conocimiento no tiene género.",
  "duration": null
}

Resultado esperado:

  • Respuesta guardada (script válido como alternativa)
  • Estado: "pending_review"
  • Validación: script ≥100 caracteres

E2E-M5-03: Comic Digital - Validación Paneles

Precondiciones:

  • Usuario autenticado como estudiante

Pasos:

  1. Navegar a ejercicio 5.2
  2. Crear 5 paneles de cómic
  3. Cada panel con diálogo y narración

Datos de prueba:

{
  "panels": [
    { "dialogue": "Marie: ¡Pierre, mira esto!", "narration": "En el laboratorio de París, 1898" },
    { "dialogue": "Pierre: ¿Es... radiactivo?", "narration": "Los esposos examinan el mineral" },
    { "dialogue": "Marie: Lo llamaremos Radio.", "narration": "El descubrimiento que cambiaría el mundo" },
    { "dialogue": "Narrador: Años después...", "narration": "Estocolmo, 1903" },
    { "dialogue": "Marie: Este premio es para la ciencia.", "narration": "Primera mujer en ganar un Nobel" }
  ]
}

Resultado esperado:

  • Respuesta guardada
  • Estado: "pending_review"
  • Validación: 4-6 paneles

E2E-M5-04: Calificación por Docente

Precondiciones:

  • Usuario autenticado como docente
  • Existe submission pendiente de E2E-M5-01

Pasos:

  1. Navegar a Teacher Portal > Review Panel
  2. Seleccionar submission de Diario Multimedia
  3. Evaluar con RubricEvaluator:
    • Precisión histórica: 4/5
    • Profundidad emocional: 5/5
    • Creatividad: 4/5
    • Voz auténtica: 4/5
  4. Agregar feedback general
  5. Guardar calificación

Datos de entrada:

{
  "scores": [
    { "criterionId": "precision_historica", "selectedLevel": 4 },
    { "criterionId": "profundidad_emocional", "selectedLevel": 5 },
    { "criterionId": "creatividad", "selectedLevel": 4 },
    { "criterionId": "voz_autentica", "selectedLevel": 4 }
  ],
  "feedback": "Excelente trabajo. Las entradas reflejan una comprensión profunda de los sentimientos de Marie Curie."
}

Resultado esperado:

  • Score final: 85% (calculado con pesos)
  • XP otorgado al estudiante: 500 XP × (85/100) = 425 XP
  • ML Coins otorgados: proporcional al score
  • Estado cambia a "graded"
  • Estudiante recibe notificación

CASOS DE PRUEBA - GAMIFICACIÓN

E2E-GAM-01: Promoción de Rango

Precondiciones:

  • Usuario en rango Halach Uinic con 1,850 XP
  • Necesita 50 XP más para K'uk'ulkan (1,900 XP)

Pasos:

  1. Completar ejercicio que otorgue ≥50 XP

Resultado esperado:

  • Total XP: 1,900+
  • Trigger: promote_to_next_rank() ejecutado
  • Nuevo rango: K'uk'ulkan
  • ML Coins bonus: +1,000 coins
  • Achievement: "Ascenso a K'uk'ulkan" desbloqueado
  • Multiplicador actualizado: 1.25x
  • Notificación enviada al usuario

E2E-GAM-02: Multiplicador ML Coins por Rango

Precondiciones:

  • Usuario en rango Nacom (multiplicador 1.10x)

Pasos:

  1. Completar ejercicio con recompensa base 50 ML Coins

Resultado esperado:

  • ML Coins finales: 50 × 1.10 = 55 coins
  • Transacción registrada con multiplicador

MATRIZ DE COBERTURA

Ejercicio Envío Validación Revisión XP ML Coins Anti-farming
4.1 Verificador FN N/A
4.2 Infografía N/A
4.3 Quiz TikTok N/A
4.4 Nav Hipertextual N/A
4.5 Análisis Memes N/A
5.1 Diario Multi N/A
5.2 Cómic Digital N/A
5.3 Video-Carta N/A

HERRAMIENTAS DE PRUEBA RECOMENDADAS

  1. Cypress - E2E testing frontend
  2. Jest + Supertest - Integration testing backend
  3. pgTAP - Database function testing
  4. Postman/Newman - API testing

PRIORIDAD DE EJECUCIÓN

  1. P0 - Crítico: E2E-M4-02, E2E-M4-03 (Quiz TikTok + anti-farming)
  2. P1 - Alto: E2E-M5-04, E2E-GAM-01 (Calificación + Promoción)
  3. P2 - Medio: Resto de casos M4-M5

Documento generado: 2025-12-23 Estado: LISTO PARA IMPLEMENTACIÓN DE TESTS