VerifactuMidAPI/documentacion/testing.md

102 lines
1.8 KiB
Markdown
Raw Permalink Normal View History

# Testing
## Tests de Certificados
Ubicación: `test/`
### Generar Certificados de Prueba
```bash
python test/generate_certs.py
```
Genera certificados en `test/certs/`:
- `valid_365days.p12` - Válido 365 días
- `valid_60days.p12` - Válido 60 días
- `expired.p12` - Expirado
- `expiring_soon.p12` - Caduca pronto
- `not_yet_valid.p12` - Aún no válido
### Ejecutar Tests
```bash
python test/run_tests.py
```
Expected output:
```
# Test Expected Result Status
------------------------------------------------------------
1 Valid 365 days PASS PASS [PASS]
2 Valid 60 days PASS PASS [PASS]
3 Expired FAIL FAIL [PASS]
4 Expiring soon PASS PASS [PASS]
5 Not yet valid FAIL FAIL [PASS]
------------------------------------------------------------
RESULTS: 5 passed, 0 failed
```
## Test de Facturas
### Factura de Ejemplo
Ubicación: `test/invoice.json`
```bash
python test_invoice.py
```
### Flujo Completo
1. **Iniciar API:**
```bash
go run main.go
```
2. **Registrar certificado:**
Ver `test_personal.py`
3. **Enviar factura:**
```bash
python test_invoice.py
```
Expected (fallback local):
```json
{
"success": true,
"csv": "0CE5F940CEA...",
"estado": "Correcto (local)"
}
```
## Depuración
### Ver Logs
Ejecutar API desde terminal:
```bash
go run main.go
```
### Limpiar Datos
```bash
# Eliminar certificados
Remove-Item -Recurse ./data/certs/*
# Eliminar hashes
Remove-Item -Recurse ./data/*
```
## Certificados Personales
Para usar tu certificado:
1. Copiar a `data/certs/personal.p12`
2. Ejecutar `test_personal.py`
3. Contraseña se envía cifrada con RSA público de la API
## Simulación
`test/simulate.py` contiene herramientas de simulación para testing sin AEAT real.