S2_pruebas_automáticas_de_software - SofiAlfonso/croody_web3_project GitHub Wiki

Pruebas Automáticas de Software

Estrategia general (Sprint 2)

Para el Sprint 2, la estrategia de pruebas se organiza por HU implementada, priorizando:

  • Happy path (flujo principal esperado).
  • Flujo alternativo/error (validaciones, permisos, estados inválidos).

Actualmente, en este repositorio:

  • Contratos: Hardhat + Chai/Mocha (contracts/test/*.test.ts).
  • Frontend y hooks: Vitest + Testing Library (src/test/**).
  • E2E con Playwright: no está configurado en el proyecto actual (no hay dependencia ni specs E2E).

Tabla de estrategia de pruebas (ajustada a HU del Sprint 2)

HU Funcionalidad Tipo de prueba Herramienta Cobertura actual
HU-12 Crear subasta Unitaria + escenarios de contrato Hardhat + Chai Cubierta: creación exitosa, validación de owner, aprobación del NFT, precio > 0, duración > 0.
HU-13 Cancelar subasta Unitaria + escenarios de contrato Hardhat + Chai Cubierta: cancelar sin pujas, rechazo con pujas, rechazo por no-vendedor, rechazo si ya terminó.
HU-14 Ver detalle de subasta Contrato + UI de componente Hardhat + Chai + Vitest Cubierta: getAuction (estado inicial/actualizado/finalizado/cancelado) y render de AuctionDetail.
HU-15 Realizar puja Integración de contrato + UI de componente Hardhat + Chai + Vitest Cubierta: puja válida, sobrepuja con refund, rechazo por puja baja/no mayor, seller no puede pujar, expiración; UI de botón y flujo de puja.
HU-17 Cierre automático de subastas Integración de contrato Hardhat + Chai Cubierta: cierre tras expiración con y sin pujas, transferencias NFT/tokens, rechazo antes de tiempo y doble cierre.
HU-05 Enviar tokens Hook/UI logic + contrato ERC-20 Vitest + Hardhat + Chai Cubierta: validación de dirección/monto, estado pending/error, éxito/fallo tx (useSendTokens); transferencias y allowance en ProjectToken.
HU-09 Envío de NFT Contrato ERC-721 + UI parcial Hardhat + Chai + Vitest Parcial: transferencias ERC-721 y permisos cubiertos en contrato; hook useTransferNft aún está en modo placeholder (sin flujo on-chain real).
HU-18 Estado de transacciones Hook/UI state Vitest Parcial: estado isPending/error cubierto en useSendTokens; faltan pruebas equivalentes para useCreateAuction, usePlaceBid, useEndAuction, useTransferNft.

Extras comprometidos para Sprint 2 (estado real del repo)

  • Corregir todos los errores detectados por análisis estático de código del Sprint 1.
  • Configurar CI/CD para ejecutar pruebas automáticas en cada Pull Request y bloquear merge si falla alguna.
    • Estado actual: no se encontró pipeline en .github/workflows.
  • Implementar reporte de coverage visible en el README del repositorio.
    • Estado actual: existen scripts de coverage (vitest --coverage y hardhat coverage), pero no evidencia de publicación automática/badge en README.