IIC2513-2021-1 / projects

Repositorio oficial para los proyectos de ambas secciones del periodo 2021-1 del curso PUC IIC2513
14 stars 6 forks source link

Error tests endpoints, beforeAll terminando despues que los tests #126

Open milosoria opened 3 years ago

milosoria commented 3 years ago

Hola! Corriendo los tests de endpoints, varios errores de undefined aparecieron. Para comprobar que sucedía, puse un console log al final del primer beforeAll , que prepara la base de datos y la autorización para las requests, y resulta que esta función termina después que los tests. El código a continuación:

describe('Property routes' , () => { ....
 let user;
let auth;
  beforeAll(async () => {
    await app.context.orm.sequelize.sync({force : true});
    user = await app.context.orm.user.create(userFields);
    const authResponse =
        await request.post('/api/auth')
            .set('Content-type', 'application/json')
            .send({mail : userFields.mail, password : userFields.password});
    auth = authResponse.body;
    console.log(auth);
  }); 

Y el output de los tests: image Donde se ve que el console.log ocurre después de que termine de correr la suite. Además, los tests arrojan error porque todos los valores definidos en el beforeAll anterior son undefined, a pesar de definir las variables de forma global en el scope del primer describe.

sivicencio commented 3 years ago

¿Y si colocas un console.log dentro del test (función test), en qué orden aparecen?

milosoria commented 3 years ago

El orden de los logs es así: print en el test (undefined) -> log de las queries de beforeAll (corriendo sin el flag --silent) -> log del término de los tests -> prints dentro de beforeAll. Es más, en las imágenes no se alcanza a ver, pero al comienzo del test hice print de algunas de las variables que se definen en el beforeAll y que son necesarias para los tests, aparecen antes que todo y como undefined :( @sivicencio

sivicencio commented 3 years ago

Con la información que has compartido la verdad no veo cuál podría ser el problema. Lo único que se me ocurre es verificar que estás corriendo los tests de forma secuencial (opción --runInBand al ejecutar Jest).

Si estás ejecutando los tests con esa opción activada, entonces puede que tenga que ver con algo de tu código en particular, y habría que verlo en su totalidad para entender el problema. En ese caso, ya que no puedes compartir toda tu solución públicamente, te sugeriría verlo directamente con tu ayudante asignado.

figarcia3 commented 3 years ago

Yo tenía el problema que los test individualemnte corrían sin problemas pero al ejecutar yarn test fallaban casi todos. La opción --runInBand solucionó mi problema.

milosoria commented 3 years ago

Gracias por las respuestas, he probado todas las formas para correr los tests y sigue el error :(