IIC2513-2021-2 / project

Repositorio oficial para el proyecto del curso IIC2513, período 2021-2
32 stars 1 forks source link

SequelizeForeignKeyConstraintError cuando corro los tests #50

Open dsilvc opened 2 years ago

dsilvc commented 2 years ago

Estaba armando los test como lo hacen en la ayudantía y al querer probar el primero para verificar que se busca un id existente y entrega status 200, tengo problemas con los atributos de mi alojamiento.

En el fondo para crear una casa necesito el id del usuario que la hizo y eso no me deja entregarlo como un dato en el test porque arroja el error de SequelizeForeignKeyConstraintError. En las fotos se ve como definí el test y el error que arroja.

testproblem consoleerror
FranciscaOtero commented 2 years ago

Para pasarle un id de un usuario antes debes crearlo en la base de datos, de la misma forma que lo estas haciendo con housingData. Como tienes una asociación entre los modelos user y housing, no puedes hacer que housing pertenezca a un usuario que no existe en la bbdd.

dsilvc commented 2 years ago

Entiendo la idea de crear el usuario antes del housing pero al parecer lo estoy implementando mal en el archivo de test. Si lo intento hacer como los housings me queda esto:

consoleerror

Y en el archivo de test está así (es básicamente el de la ayudantía):

code
FranciscaOtero commented 2 years ago

Lo que puede estar pasando es que como los beforeAll son asíncronos se demoran más en ejecutar lo que tienen dentro que lo que está afuera, entonces cuando se corre userId: user.id el usuario todavía no se ha creado en la bbdd. Lo que deberías hacer es crear el usuario y el housing en el mismo beforeAll (dentro de este las cosas corren en orden).

dsilvc commented 2 years ago

Pucha, los puse juntos en el mismo beforeAll (primero user y después housing) y tampoco funciona. Sigue diciendo que el user es undefined

dsilvc commented 2 years ago

Al final metí el housingData dentro del beforeAll (entre los dos create) y funcionó