docs/sample-webhooks.md
# Sample WebHooks
Para testear request usamos webhooks reales que genera github.
## Cómo configurar github para que envíe webhooks
1. Loguearse en github.com con un usuario con permisos de administrador de proyecto
2. Navegar hasta la página del proyecto, por ejemplo https://github.com/codenautas/multilang
3. Clickear en "Settings", a la derecha, debajo de "Pulse" y "Graphs"
4. En el menú izquierdo clickear en "Webhooks & services"
* En "Webhooks" clickear en "Add webhook"
* En Payload URL escribir la url del script que recibirá los requests
* En Content type seleccionar "application/json"
* En Secret escribir el texto correspondiente
* Luego seleccionar los eventos que se desea recibir y activar el hook
* Luego de esto, github enviará un hook de prueba que recibiremos inmediatamente en nuestro script
## Cómo generar hooks de prueba:
* Algunos proyectos de codenautas están configurados para enviar sus hooks a testeador.sk.nf
* Para ver los mismos hay que loguearse en http://testeador.co.nf/codenautas/wh/ y,
por cada webhook recibido, se visualizará un par de archivos con el siguiente formato:
* `<nombre proyecto>_<fecha>_<event>.txt`: este archivo contiene los headers en formato <name>|<value>
y el contenido json del webhook en formato cómodo para ver
* `<nombre proyecto>_<fecha>_<event>.raw`: este archivo contiene el contenido del request si modificaciones (y, obviamente, sin los headers)
* Pasos para generar un webhook para los tests:
* Seleccionar el para de archivos del hook (.txt y .raw)
* Elegir un nombre para el para de archivos de test, por ejemplo "mihook"
* Abrir el .txt y seleccionar los headers, desde la línea siguiente a "----- headers -----" hasta la última línea,
no vacía, anterior a "------- json ------"
* Crear un archivo en `<checkout de qa-control-server>\test\webhooks\mihook.headers` y pegar lo copiado en el punto anterior
* Con el botón derecho del mouse sobre el .raw, elegir "Guardar enlace como..." y salvarlo `<checkout de qa-control-server>\test\webhooks\mihook.raw`
* Finalmente, correr `npm test` para que test-samples.js verifique el mismos
* Importante:
* El "secreto" de los webhooks de prueba, con el que hay que configurar github, está definido en `test/test-helper.js`
* En algunos casos pueden existir problemas de fin de línea en los archivos .txt/.raw y esto generar que un sample no valide,
para intentar corregir el problema, convertir .headers a fin de línea de *nix (\n).
(aún no determiné si el problema es el navegador y su interacción con el portapapeles y/o el OS al guardar los archivos)