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.
- Estado actual: no se encontró pipeline en
- Implementar reporte de coverage visible en el README del repositorio.
- Estado actual: existen scripts de coverage (
vitest --coverageyhardhat coverage), pero no evidencia de publicación automática/badge en README.
- Estado actual: existen scripts de coverage (