Open fedeglggg opened 5 years ago
Hola Fede. Pasame un poco mas de datos, que tipo de test es? Pudiste avanzar algo?
Saludos.
No entiendo bien el enunciado, al principio pensé en algo como que el modelo iguale la tabla de la DB pero no estoy seguro ni sabría cómo se hace tampoco. Si pudiera ver el código sabría mejor donde ubicarlo
Lo que tenes que probar es el modelo. Esto no involucra la interfaz de usuario ni la API. Si el test lo transcribo en pasos seria:
Cuando digo modelo me refiero al archivo server/src/models/movie.js
. Fíjate algún test que use ese archivo.
Se que prometí pasar el código pero espero hacerlo en ultimas instancias. Saludos.
Traté con el siguiente codigo:
test('Modelo que permite obtener todas las películas', async () => {
const movieData = {
title: 'Jurassic Park',
description: 'During a preview tour, a theme park suffers a major power breakdown that allows its cloned dinosaur exhibits to run amok.',
year: 1993,
runtime: 127,
country: 'United States',
language: 'English',
genres: ['Adventure', 'Sci-Fi', 'Thriller'],
directors: ['Steven Spielberg'],
writers: ['Michael Crichton', 'Michael Crichton', 'David Koepp']
};
const movie = await MovieModels.create(movieData)
const recivedMovies = await MovieModels.getAll()
expect(recivedMovies).toContainEqual(movie)
});
Pero me tira el siguiente error:
Debería usar algo distinto a toContainEqual
? parece muy estricto en los atributos
Si, usa toBe en cada propiedad del modelo
No sabría como usar toBe para que recorra el array y encuentre la pelicula, lo plantie distinto, estaría bien así?
test('Modelo que permite obtener todas las películas', async () => {
const movieData = {
title: 'Jurassic Park',
description: 'During a preview tour, a theme park suffers a major power breakdown that allows its cloned dinosaur exhibits to run amok.',
year: 1993,
runtime: 127,
country: 'United States',
language: 'English',
genres: ['Adventure', 'Sci-Fi', 'Thriller'],
directors: ['Steven Spielberg'],
writers: ['Michael Crichton', 'Michael Crichton', 'David Koepp']
};
const movie = await MovieModels.create(movieData)
const recivedMovies = await MovieModels.getAll()
expect(recivedMovies).toEqual(
expect.arrayContaining([
expect.objectContaining({
title: 'Jurassic Park',
description: 'During a preview tour, a theme park suffers a major power breakdown that allows its cloned dinosaur exhibits to run amok.',
year: 1993,
runtime: 127,
country: 'United States',
language: 'English',
genres: ['Adventure', 'Sci-Fi', 'Thriller'],
directors: ['Steven Spielberg'],
writers: ['Michael Crichton', 'Michael Crichton', 'David Koepp']
})
])
)
});
El test finaliza sin errores:
No, deberías checkear todas las propiedades de las películas. Algo asi:
expect(recivedMovies.title).toEqual(movieData.title)
expect(recivedMovies.description).toEqual(movieDate.description)
Así con todas las propiedades.
No pongas el test completo :police_car: :policeman:. Cualquier cosa escribie a jacznik.rodrigo@gmail.com
Hola, necesitaría el código para un test que pruebe que el modelo de películas permite obtener todas las películas. Saludos