Código de la clase con apuntes:
describe('triggers and mocks', () => {
describe('triggers click in qr code button and the event it is called', () => {
const spySendQRCode = jest.spyOn(QRCodeInput.methods, 'sendQRCode') // Se crea un spy para el método sendQRCode.
const wrapper = shallowMount(QRCodeInput) // Se crea el componente.
const txtComponent = wrapper.find('#txt-qr-code') // Se busca el elemento con ese id.
const qrCode = 'www.platzi.com' // Se crea un valor para el input.
txtComponent.setValue(qrCode) // Se le asigna un valor al input.
it('the send qr code function it is beign called', async () => {
const btnComponent = wrapper.find('#btn-generate') // Se busca el elemento con ese id.
await btnComponent.trigger('click') // Se dispara el evento click en el botón.
expect(spySendQRCode).toHaveBeenCalledTimes(1) // Se comprueba que el método se llamó una vez.
// toHaveBeenCalledTimes(n) comprueba que el método se llamó n veces.
expect(wrapper.emitted()).toHaveProperty('qrCodeInput') // Se comprueba que el método se llamó con el parámetro qrCodeInput.
// wrapper.emitted() devuelve un objeto con los eventos que se dispararon en el componente.
// toHaveProperty('qrCodeInput') comprueba que el objeto tiene la propiedad qrCodeInput.
expect(wrapper.emitted('qrCodeInput')).toHaveLength(1) // Se comprueba que el evento qrCodeInput se llamó una vez.
// wrapper.emitted('qrCodeInput') devuelve un array con los parámetros que se le pasaron al evento qrCodeInput.
// toHaveLength(n) comprueba que el array tiene n elementos.
expect(wrapper.emitted('qrCodeInput')[0]).toStrictEqual([qrCode]) // Se comprueba que el evento qrCodeInput se llamó con el parámetro qrCode.
// wrapper.emitted('qrCodeInput')[0] devuelve el primer elemento del array.
// toStrictEqual([qrCode]) comprueba que el array tiene el elemento qrCode.
})
})
})
¿Quieres ver más aportes, preguntas y respuestas de la comunidad?