Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Dudas sobre Test #36

Open
juanpablomoscoloni opened this issue May 15, 2019 · 5 comments
Open

Dudas sobre Test #36

juanpablomoscoloni opened this issue May 15, 2019 · 5 comments
Labels
question Further information is requested

Comments

@juanpablomoscoloni
Copy link

Hola, como andan? Les traigo una consulta! Me estuve rompiendo un poco la cabeza y buscando pero la verdad no consigo bien saber como encarar el test, nose si tienen algún ejemplo parecido o algo por el estilo, como para orientarme ya que el que pusieron me resulta muy distinto a lo que tengo que hacer. Les paso mi enunciado.
Hacer un test que pruebe que, luego de crear una película por API, exista la nueva
película en la base de datos.
Considero que es un test de integración. Más que nada me gustaria saber como hacer para detectar que una pelicula fue creada, y luego como matchear la info de esa pelicula con la de la base de datos.
Un saludo!

@RodrigoJacznik
Copy link
Contributor

Hola, los pasos para este test serian:

  1. Crear una película mediante la API. Para este punto tenes que hacer un fetch, podes usar el código similar al que hicieron en el create del archivo client/src/api/movie.mjs
  2. Obtener todas las películas y controlar que la que te retorne fue la que creaste, podes usar el código similar al que hicieron en el getAll del archivo client/src/api/movie.mjs
  3. Para controlar que los datos sean similares podes usar toBe o toMatchObject. Por ejemplo: expect(movie.title).toBe(receivedMovie.title), donde receivedMovie es la película del punto 2.

Cualquier cosa avísame y te doy otra mano.
Saludos

@RodrigoJacznik RodrigoJacznik added the question Further information is requested label May 16, 2019
@pessotanoariel
Copy link

pessotanoariel commented May 16, 2019

Como están? Me toco el mismo punto. Siguiendo esos pasos, seria algo así?

test('Despues de crear una pelicula, exista esta en la BD', async () => {
   
    const movieData = {
        title: 'Back to the Future',
        description: 'Marty McFly, a 17-year-old high school student, is accidentally sent thirty years into the past in a time-traveling DeLorean invented by his close friend, the maverick scientist Doc Brown.',
        year: 1985,
        runtime: 116,
        country: 'United States',
        language: 'English',
        genres: ['Adventure', 'Comedy', 'Science Fiction'],
        directors: ['Robert Zemeckis'],
        writers: ['Robert Zemeckis', 'Bob Gale']
    };

    function create(movieData){
        return fetch(`/api/v1/movies`, {
        method: 'POST', 
        body: JSON.stringify(movieData), 
        headers:{
          'Content-Type': 'application/json'
        }
      })

    }
    
    function getAll() {
	    return fetch(`/api/v1/movies`)
	        .then(result => result.json())
    }

    const movie = await create(movieData)
    const recivedMovie = await getAll(movie);

    expect(movie.title).toBe(recivedMovie.title);
    

})

Necesito una mano porque estoy medio perdido. Saludos!

@RodrigoJacznik
Copy link
Contributor

Te paso el test? Me parece que la URL que usas en el fetch esta incompleta, ademas te faltaría controlar el resto de los campos de la película.

Un comentario aparte, no deberías copiar toda la función create y getAll. Podes usar los fetch directamente.

Para la próxima mándame el código por mail a [email protected] y lo controlo 👮‍♂️

@juanpablomoscoloni
Copy link
Author

juanpablomoscoloni commented May 17, 2019 via email

@RodrigoJacznik
Copy link
Contributor

Genial. Si no borraste el branch en el que hiciste el test podes volver a trabajar sobre eso.
Saludos

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
question Further information is requested
Projects
None yet
Development

No branches or pull requests

3 participants