Guía de Pruebas para el Sistema Blockchain PHP

Este documento proporciona una guía exhaustiva para testear todas las funcionalidades del sistema Blockchain PHP. Sigue estos pasos para asegurar la estabilidad y el correcto funcionamiento de la aplicación.

1. Configuración del Entorno de Pruebas

1.1 Requisitos Previos

1.2 Configuración Inicial

  1. Asegúrate de que la base de datos esté configurada y el archivo `database.sql` haya sido importado. Verifica las configuraciones de conexión en los archivos `config.php` de los módulos (ej. `api/config.php`, `modules/auth_user_management/config.php`).
  2. Ejecuta `composer install` en el directorio raíz del proyecto para instalar las dependencias de PHP.
  3. Asegúrate de que el servidor web esté configurado para servir el proyecto correctamente y que las rutas reescriban a `index.php` si es necesario (para URLs amigables).

2. Características a Testear

  1. Autenticación y Gestión de Usuarios

    Verificar el flujo completo de usuarios, desde el registro hasta la administración.

    • **Registro de Usuario (`register.php`, `api/register.php`):**
      • Registrar un nuevo usuario con datos válidos.
      • Intentar registrar con datos inválidos (ej. email ya registrado, contraseñas no coincidentes, campos vacíos).
      • Verificar que el usuario se guarda correctamente en la base de datos.
    • **Inicio de Sesión (`login.php`, `api/login.php`):**
      • Iniciar sesión con credenciales válidas.
      • Intentar iniciar sesión con credenciales inválidas.
      • Verificar que el usuario es redirigido correctamente tras un inicio de sesión exitoso.
    • **Perfil de Usuario (`profile.php`, `api/profile.php`):**
      • Acceder al perfil del usuario autenticado.
      • Actualizar la información del perfil (nombre, email, contraseña).
      • Verificar que los cambios se reflejan en la base de datos y en la interfaz.
    • **Cierre de Sesión (`logout.php`):**
      • Cerrar la sesión de un usuario.
      • Verificar que el usuario ya no está autenticado.
    • **Administración de Usuarios (si aplica, `admin_users.php`, `api/admin_users.php`):**
      • Listar usuarios.
      • Editar y eliminar usuarios (solo para roles con permisos).
      • Verificar que los cambios se persisten en la base de datos.
  2. Funcionalidad Blockchain

    Probar la creación y verificación de bloques en la cadena.

    • **Minería de Bloques (`chain_union.php`, `api/mine_block.php`):**
      • Ejecutar la minería de un nuevo bloque.
      • Verificar que el nuevo bloque se agrega a la cadena (consultando `api/get_chain.php`).
      • Asegurarse de que el hash del bloque anterior y el actual sean correctos.
      • Añadir transacciones (datos) a un bloque y verificar que se almacenen correctamente.
    • **Obtener la Cadena (`api/get_chain.php`):**
      • Acceder al endpoint para obtener la cadena completa.
      • Verificar la estructura de los bloques (índice, timestamp, datos, hash anterior, hash actual, nonce).
      • Asegurar que la cadena se muestra en el orden correcto.
    • **Validación de la Cadena (implícito en la lógica):**
      • Si existe una función de validación de cadena, ejecutarla para asegurar la integridad.
      • Intentar alterar un bloque manualmente en la base de datos y verificar que la validación falle.
  3. Funcionalidad de Blog

    Verificar la creación, lectura, actualización y eliminación (CRUD) de publicaciones.

    • **Crear Publicación (`blog.php`, `api/posts.php`):**
      • Crear una nueva publicación (título, contenido, autor).
      • Verificar que la publicación aparece en la lista de blogs.
    • **Leer Publicación (`blog.php`, `api/posts.php`):**
      • Visualizar publicaciones individuales.
      • Verificar que el contenido y los metadatos son correctos.
    • **Actualizar Publicación (`blog.php`, `api/posts.php`):**
      • Editar una publicación existente.
      • Verificar que los cambios se reflejan en la vista y en la base de datos.
    • **Eliminar Publicación (`blog.php`, `api/posts.php`):
      • Eliminar una publicación.
      • Verificar que ya no aparece en la lista.
  4. Mensajería

    Probar el envío y recepción de mensajes.

    • **Enviar Mensaje (`messages.php`, `api/messages.php`):**
      • Enviar un mensaje a otro usuario (si existe la funcionalidad).
      • Enviar un mensaje a uno mismo.
    • **Recibir/Ver Mensajes (`messages.php`, `api/messages.php`):**
      • Ver la bandeja de entrada de mensajes.
      • Verificar que los mensajes se muestran correctamente.
    • **Responder/Eliminar Mensaje (si aplica):**
      • Probar la respuesta y eliminación de mensajes.
  5. API Endpoints Generales

    Verificar la respuesta de los endpoints principales a través de Postman, Insomnia o cURL.

    • **`api/todo.php`:**
      • Probar CRUD para tareas pendientes.
    • **`api/settings.php`:**
      • Verificar la recuperación y actualización de configuraciones (si implementado).
    • **`api/videos.php`, `api/video_notes.php`, `api/youtube_converter.php` (si aplican):**
      • Probar las funcionalidades relacionadas con videos y notas.
    • **Manejo de Errores:**
      • Probar el envío de solicitudes incorrectas a los endpoints de la API y verificar que se devuelvan códigos de estado HTTP apropiados (400, 401, 404, 500) y mensajes de error útiles.
  6. Dashboard (`dashboard.php`)

    Verificar que todas las métricas, enlaces y funcionalidades del panel de control se muestren y funcionen correctamente.

    • Acceder al dashboard como usuario autenticado.
    • Verificar la carga de datos (ej. número de usuarios, bloques minados, publicaciones, etc.).
    • Probar la navegación a otras secciones desde el dashboard.
  7. Páginas Estáticas y Otras (`cv.html`, `sales_page.html`)

    Asegurarse de que las páginas estáticas se visualicen correctamente.

    • Abrir las páginas en el navegador y verificar el formato y contenido.

3. Consideraciones Adicionales

Al completar estas pruebas, el sistema debería ser estable y funcional. Reporta cualquier problema encontrado.