# QA Sprint 19 — Mapa geográfico

## QA funcional

1. Abrir un caso y entrar a **Mapa**.
2. Registrar una ubicación con nombre, coordenadas y procedencia.
3. Confirmar que aparece como **Propuesta**.
4. Registrar una segunda ubicación.
5. Construir una ruta con ambas ubicaciones.
6. Confirmar que la ruta aparece como propuesta.
7. Registrar revisión humana de ubicación y ruta.
8. Comprobar filtros por persona, estado, certeza y periodo.
9. Abrir la cronología desde el mapa.
10. Ejecutar sincronización y comprobar que solo añade eventos con coordenadas.

## QA negativo

- Latitud mayor de 90 debe rechazarse.
- Longitud mayor de 180 debe rechazarse.
- Una ruta con menos de dos puntos debe rechazarse.
- Una persona o evento de otro caso debe rechazarse.
- Un UUID de otra empresa no debe mostrar ni modificar datos.
- Un caso archivado no debe aceptar escrituras.
- Una ubicación duplicada debe rechazarse.
- La sincronización repetida no debe crear duplicados.

## QA visual

- Modo claro y oscuro.
- Escritorio, tableta y móvil.
- Mapa desplazable sin romper el layout.
- Panel de detalle legible.
- Formularios alineados.
- Marcadores utilizables con teclado.
- Estados diferenciados sin depender únicamente del color.

## QA técnico

- `php -l` en todos los archivos modificados.
- `php tests/run.php`.
- `php tools/qa/sprint19_validate.php`.
- Ejecutar `database/qa/022_qa_geographic_routes_sprint19.sql`.
- Confirmar `TOTAL_ERRORES=0`.

## Cierre

Después del QA visual ejecutar `RECOLECTAR_POST_SPRINT_19.bat` y adjuntar el ZIP generado.
