Sobre el testeo del servidor, archivo serve.spec.js:
Concéntrense solo en lo que hay dentro del describe
-
primero tenemos que conocer lo que queremos testear
-
En el decribe se prueba que la peticion get a http://localhost:3000/api devuelva la lista de pins y status code 200.
-
analizando la implementación de ese get (server/routes/pins.js), vemos que tiene una dependencia con el método Pins.find.
-
Pins.find es un método que busca pins en la base de datos. En ese get se le pasa como argumento un callback que se ejecuta cuando la base de datos le respondió. Ese callback tiene 2 parámetros, el primero es error y el segundo la data.
-
para hacer nuestro testeo del get, no deberíamos depender de que pierda tiempo consultando la base de datos. Por eso usamos spyOn, para que esa dependencia devuelva un resultado rápido pero coherente.
-
en este caso se hace con spyOn que al usarse Pins.find, este devuelva [{id:1}], una lista de pins con su id.
-
el get podría hacer muchas cosas con esa info, entonces si nosotros le pasamos toda la info que necesita, usando spyOn, nosotros podemos calcular manualmente lo que debe devolver, si devuelve lo esperado, entonces pasa la prueba.
-
en este caso lo único que hace el get es devolver un archivo json
Para entender el resto, deberían saber node y express
¿Quieres ver más aportes, preguntas y respuestas de la comunidad?