Custom Hooks + Testing con Playwright: Curso de React desde cero - Parte 4

Поділитися
Вставка
  • Опубліковано 18 січ 2025

КОМЕНТАРІ • 80

  • @carlosbarrera6098
    @carlosbarrera6098 Рік тому +10

    Grande Midu nunca te pillo en directo por el horario aquí en Colombia que es a mitad de día, pero que los subas es lo mejor gracias

  • @mundodelfutbol6777
    @mundodelfutbol6777 Рік тому +9

    A concienca este men es un crack de la programacion, asi como messy es el mejor jugador de futbol este mejor es un verdadero crack vos sos el mejor saludos desde Colombia

  • @mundodelfutbol6777
    @mundodelfutbol6777 Рік тому +2

    Estos videos de este men, son verdaderamente una mina de oro que hay que explotar

  • @ivanstebler
    @ivanstebler 7 місяців тому +2

    Ya no aguantabas la risa con los gatos, Midu. 32:16 jajjjajaj

  • @diegosanchez57839
    @diegosanchez57839 Рік тому +2

    Grácias Midu!! 😄
    Porfa, recuerda ponerlo en la playlist del curso 🙏

  • @marcelobaeza7632
    @marcelobaeza7632 6 днів тому

    Hola Midu, muchas gracias por tu esfuerzo de presentarnos el curso de reactjs.
    Tengo una pregunta, al momento en que usas el customHooks, comprendo la idea de esto, pero dentro del useCatImage (solo para probar) borré el use effect, return un null cuando es un !fact, y cuando apreto el botón, la lógica sigue funcionando igual, cambia el fact (que está bien) pero que cambia la imagen igual...Añadí un console.log previo al fetch, cuando lo dejo sin effect veo que el log se muestra 3 veces, y con effect 1 vez. Entoces: ¿Por qué sigue funcionando sin el effect? Y ¿Por qué imprimiría 3 veces? Esta pregunta se relaciona hasta el minuto 18:50

  • @d-landjs
    @d-landjs Рік тому +1

    Excelente Midu, super entendible los custom hooks y el test, seria genial que hagas mas ejemplos de test :D

  • @DavidPcss
    @DavidPcss Рік тому

    Grande Midu!!! Siempre fenomenal. Gracias!

  • @RolandoRc2503
    @RolandoRc2503 8 місяців тому +1

    Justo estoy aprendiendo todo el universo react para hacer mi tesis :D

  • @robertgotsik7707
    @robertgotsik7707 Рік тому

    gracias por el video Midu! me sumo a los comentarios que piden mas ejemplos de tests

  • @soy-luisarrieta
    @soy-luisarrieta Рік тому +1

    Increíble como refactorizó todo

  • @onesecondisback3290
    @onesecondisback3290 Рік тому

    Muchas gracias por todo Midu! Excelente explicación! Gracias por todo

  • @SonGoku-pc7jl
    @SonGoku-pc7jl Рік тому

    gracias Midu por todas estas clases, las repasaré pk das mucha información útil :)

  • @Sebastian-fj1wn
    @Sebastian-fj1wn Рік тому

    Gracias por todo el apoyo profe Midu.

  • @lopuma1990
    @lopuma1990 Рік тому

    Hola @midulive En este minuto 30:00 , puedes combinar los 2 hooks useCatFact y useCatImage en un solo hook?

  • @NeysaBaldoquinAlonso
    @NeysaBaldoquinAlonso 4 місяці тому

    Buen curso para hacer certificaciones de React!

  • @Epsaind
    @Epsaind Рік тому

    Gracias por el video midu , un saludo !

  • @GermanDorta
    @GermanDorta 8 місяців тому +1

    ¡Gracias Midu!

    • @midulive
      @midulive  8 місяців тому

      Gracias a ti!

    • @G3R_V
      @G3R_V 8 місяців тому +1

      @@midulive Nunca creí verte respondiendo comentarios un año despues, por cierto apenas comence tu curso de React hace una semana y es una chulada, la mejor de todas.

  • @lopuma1990
    @lopuma1990 Рік тому

    42:24 este test es como si fuera selenium para interactuar con la web de forma automatizada??

  • @Deus-lo-Vuilt
    @Deus-lo-Vuilt Рік тому

    Buena , este practico esta super completo !

  • @JoséAlbertoMolina-i7y
    @JoséAlbertoMolina-i7y Рік тому

    Simplemente Gracias

  • @lucass8049
    @lucass8049 Рік тому

    midu sos un genio. gracias

  • @martinojeda3648
    @martinojeda3648 Рік тому

    Midu, como estas? Tengo una duda. Yo para hacer el botón cree un estado llamado alter como booleano, y se lo pasé como dependencia al primer useEffect. Con el botón solo cambiaba el estado de alter entre true y false, y eso funcionó. Lo que hice esta mas en algún aspecto? Ya sea a nivel rendimiento o a nivel sintactico.

  • @MatiasCecciDev
    @MatiasCecciDev Рік тому

    Eres un genio Midu!, me encanta la forma en que explicas, lástima que no puedo verlo en directo para preguntar, pero ya voy a poder!
    sigue así!

  • @emisuadev
    @emisuadev Рік тому

    En el 35:30 empieza el testing.

  • @laurapaz4003
    @laurapaz4003 Рік тому

    Gracias Midu! Muy bueno. Una duda, moverias absolutamente toda la logica a un custom hook, incluso la tipica funcion "handleCkick" solamente por separar la vista de la logica? O harias custom hooks aunque sepas que NO se va a reutilizar?

    • @samuelaponte2687
      @samuelaponte2687 Рік тому +5

      Pensaria que no es necesario, ya que igual la logica como quedo está super entendible, ademas esa es la idea de los custom hooks, que se reutilicen, entonces no tendria mucho sentido. (en mi opinion)

  • @AlfonzoDiez
    @AlfonzoDiez Рік тому +7

    buenas, si les da pereza escribir test como a mi Playwright tiene una herramienta que visualmente los pueden construir con *playwright codegen* funciona con javascript, python muy muy facil

  • @lean_diaz
    @lean_diaz Рік тому

    explicacion de tests 34:55

  • @juanherrera7266
    @juanherrera7266 Рік тому

    Que programa se requiere para practicar React

  • @laut83739
    @laut83739 Рік тому +2

    No se saltó de la parte 2 a la parte 4? Cuál me he perdido

    • @gerardovanced3983
      @gerardovanced3983 Рік тому +1

      creo que la parte 3 es la prueba tecnica que resolvio hace 3 semanas
      al menos asi aparece en la playlist de la descripcion

    • @laut83739
      @laut83739 Рік тому

      @@gerardovanced3983 creo que tienes razón!

  • @francoespinoza1459
    @francoespinoza1459 Рік тому

    con respecto al test que dejo midu de verificar si el texto cambiar al dar click en el button dijo que seria mas dificil :c y solo agregue 2 lineas que serian :
    await page.click('text=get Random fact')
    await page.waitForTimeout(2000)
    es mala practica hacer lo que hice? (basicamente lo que hago es obtener el texto, img dar click en el boton esperar 2 segundos, recuperar el texto nuevamente y los comparo, en el expect compruebo que sean diferentes si son iguales significa que no cambio el texto ni la imagen)

    • @samuelaponte2687
      @samuelaponte2687 Рік тому

      Es buena opción pero no se en que punto haya la pequeña probabilidad de que se genere el mismo texto por suerte, de igual forma cambia, osea es el mismo pero hay un nuevo dato en fact, entonces no se, se me ocurre si depronto comprobando en el fact que haya entrado un nuevo valor despues de darle click al botón.

  • @conpororo
    @conpororo Рік тому

    7:11 haz flipao eeeeh

  • @DiegooAlt
    @DiegooAlt 8 місяців тому

    Como cambió la respuesta de la API, para reconstruir el src de la imagen se debe hacer esto:
    .then(data => {
    const { _id } = data
    const url = `/cat/${_id}/says/${threeFirstWords}`
    setImageUrl(url)
    })

    • @roxaskeyblade8444
      @roxaskeyblade8444 8 місяців тому

      Disculpa la molestia por preguntar pero, donde haces este cambio? en el primer useEffect o en el segundo? mantienes el fetch del segundo useEffect intacto??

    • @DiegooAlt
      @DiegooAlt 8 місяців тому +1

      @@roxaskeyblade8444 Se hace el cambio en el hook que se encarga de devolver la imagen (imageUrl). En el caso del proyecto estaría en src/hooks/useCatImage.js.
      Se pone dentro del useEffect en el segundo .then, ya que es ese donde podemos acceder a la data.

    • @roxaskeyblade8444
      @roxaskeyblade8444 8 місяців тому +1

      @@DiegooAlt Muchas gracias tenia mis dudas ya que la url se construye con el extracto de las primeras 3 palabras de la cadena despues me di cuenta que eso se extrae del estado tambien pense que el endpoint del fetch era otro, muchas gracias por aclarar mis dudas!!

  • @JoseManuelVelascoMartinez
    @JoseManuelVelascoMartinez Рік тому +1

    Para hacer el test que compruebe que el contenido cambia al pulsar el botón no me aclaro. Alguna idea o ejemplo de algo similar ?¿ Suelo usar jest pero ya que se menciona playwright me gustaría probarlo y me he atascado con eso.

    • @victorm3962
      @victorm3962 Рік тому +1

      Lo acabaste consiguiendo ?

    • @JoseManuelVelascoMartinez
      @JoseManuelVelascoMartinez Рік тому

      no, no he tenido ningún tipo de feedback al respecto ... casi hasta lo he ya olvidado@@victorm3962, si tienes alguna idea te agradezco me comentes y repesco el tema

    • @victorm3962
      @victorm3962 Рік тому

      Este es la solución que yo he encontrado no es la mejor pero los waitForSelector no me funcionaban : test('Checking that have different text and image when click the button', async ({ page }) => {
      await page.goto(URL_CAT);
      const p = await page.getByRole('paragraph')
      const image = await page.getByRole('img')
      const textContext = await p.textContent()
      const imgScr = await image.getAttribute('src')
      const button = await page.getByRole('button').click();
      await page.waitForTimeout(3000);
      const p2 = await page.getByRole('paragraph')
      const image2 = await page.getByRole('img')
      const newtextContext = await p2.textContent()
      const newimgScr = await image2.getAttribute('src')
      console.log(textContext)
      console.log(imgScr)
      console.log(newtextContext)
      console.log(newimgScr)
      await expect(textContext).not.toEqual(newtextContext)
      await expect(imgScr).toEqual(newimgScr)
      });

  • @oscarvasquez5033
    @oscarvasquez5033 Рік тому

    min 7:08 mejor del video jajajaja

  • @JesúsMacías-r9v
    @JesúsMacías-r9v 11 місяців тому

    En el min 35 empieza con Playwright

  • @Vekjs07
    @Vekjs07 Рік тому

    Crack 🎉

  • @stivenreina2267
    @stivenreina2267 Рік тому

    20:26

  • @juanantonioriverolescano6747

    cual es la parte 1,2 y 3, porque creo que falta una parte

  • @danylvr37
    @danylvr37 Рік тому

    no me salen los 3 puntitos para la opción de convertir a aysnc await, me ayudan a solucionar esto?

  • @adn2929
    @adn2929 Рік тому

    alguien sabe por que pasa esto?
    Most common reasons include:
    - You are calling test.beforeEach() in a configuration file.
    - You are calling test.beforeEach() in a file that is imported by the configuration file.
    - You have two different versions of @playwright/test. This usually happens
    when one of the dependenices in your package.json depends on @playwright/test.

  • @rojasguarachinestorignacio884

    Ah alguno le pasa que cuando crean el componente Otro.jsx con el customHook del image y luego lo añaden este al App.jsx unas 3 veces entonces cuando recargan la pagina les devuelve la misma imagen en los 3 componentes?

  • @gerardovanced3983
    @gerardovanced3983 Рік тому

    creo que necesito buscar un curso entero de testing en js, no entendi nada de este tema y nunca lo he usado :c

    • @santiagocaci121
      @santiagocaci121 Рік тому

      Lo bueno es que esta bastante estandarizado, si aprendes Jest despues Vitest se te va a hacer familiar y lo mismo con Cypress y Playwright

  • @TheEmanuel15x
    @TheEmanuel15x Рік тому

    Jaja q onda con ese sonido en la mitad del video? jajaja!

  • @dorian8005
    @dorian8005 Рік тому

    No se si a otra persona le ha sucedido pero la imagen me esta devolviendo "undefined" y no se muestra...

    • @davidcastanera100
      @davidcastanera100 Рік тому

      Porque en el segundo fetch la respuesta ya no devuelve la url, no sé por qué. Tendrás que modificar el "setImageUrl"

    • @Akilanium
      @Akilanium Рік тому

      A mi me pasa. Lo pudiste solucionar?

    • @blasnunez5493
      @blasnunez5493 Рік тому

      como lo solucionaron?

    • @ArturoHernandez-jd8vx
      @ArturoHernandez-jd8vx Рік тому

      Segun yo tiene q ver con que por alguna razon el useEffect no es ejecutado, por ende el estado interno del hook no se actualiza y el componente puede dar error al leer undefined.
      No se como solucionarlo pero estoy en eso, quiza tenga q ver con las dependecias del effect o la asincronia q maneja dentro el effect.

    • @dorian8005
      @dorian8005 Рік тому

      Yo sigo sin solucionarlo...

  • @aaroncarhuaricraceras8195
    @aaroncarhuaricraceras8195 Рік тому

    Alguno pudo resolver que la API ya no te da la URL?

  • @criptamas
    @criptamas 3 місяці тому

    mas de uno se rio del donald cat xddd

  • @sebastianbarcia2796
    @sebastianbarcia2796 Рік тому

    Demasiado rapido…

    • @midulive
      @midulive  Рік тому +5

      Al ser un vídeo, lo puedes ver tantas veces como quieras y a la velocidad que quieras. :)

    • @sebastianbarcia2796
      @sebastianbarcia2796 Рік тому

      @@midulive ok gracias por el consejo, era una sugerencia para los que estamos aprendiendo la velocidad es importante. Saludos!

    • @amaury_permer
      @amaury_permer Рік тому +2

      ​@@sebastianbarcia2796 creo que más allá de la velocidad, es entender primero conceptos de JavaScript antes de meterse de lleno a React, react en si es Js + un poco de Html y sus detalles

    • @devtor14oo
      @devtor14oo Рік тому +4

      Yo viendo el video en x2 🤣

    • @aaroncarhuaricraceras8195
      @aaroncarhuaricraceras8195 Рік тому

      @@sebastianbarcia2796 Buen dia, creo que mas que una sugerencia lo que hiciste fue dar una queja, bueno es lo que parecio. Un saludo