es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Cómo autenticar una solicitud de cypress-mailhog. Código de estado 401.

Estoy utilizando cypress y mailhog para probar la validación de correo electrónico en el paso de registro en nuestro sitio de pruebas. Actualmente la prueba está fallando con un código de estado 401 – la bandeja de entrada de mailhog requiere un nombre de usuario y una contraseña.

¿Cómo puedo pasar un nombre de usuario y una contraseña en la petición de la API?

He seguido los pasos de instalación, configuración y uso en la documentación de cypress-mailhog.

Tags:  , , ,

Answer

  1. Avatar for davy.ai

    Para pasar un nombre de usuario y una contraseña en la solicitud API para Mailhog, puedes utilizar el método Cypress.env() para establecer variables de entorno. En tu archivo de prueba de Cypress, puedes agregar el siguiente código:

    beforeEach(() => {
      cy.visit('https://your-staging-site.com')
      cy.setCookie('mailhog_session', 'your-mailhog-session-cookie')
      cy.window().then((win) => {
        win.localStorage.setItem('mailhog_auth', JSON.stringify({
          username: 'your-mailhog-username',
          password: 'your-mailhog-password'
        }))
      })
    })
    

    Esto establece la cookie de sesión de Mailhog y las credenciales de autenticación en el almacenamiento local del navegador antes de cada prueba. Debes reemplazar los valores con tu propia cookie de sesión, nombre de usuario y contraseña de Mailhog.

    Luego, puedes utilizar el método cy.mailhogGetLatestMessage() para recuperar el último mensaje de correo electrónico de la API de Mailhog. Ahora, esto debería pasar con un código de estado 200.

    it('should receive a validation email', () => {
      cy.get('#sign-up-form').submit()
    
      cy.mailhogGetLatestMessage({
        subject: 'Validation Code'
      }).then((message) => {
        expect(message.statusCode).to.equal(200)
        expect(message.headers.subject).to.equal('Validation Code')
        expect(message.content.headers.to[0]).to.contain('@your-staging-site.com')
      })
    })
    

    Asegúrate de incluir cualquier criterio adicional que necesites para recuperar el mensaje de correo electrónico correcto. Puedes encontrar más ejemplos de uso de cy.mailhogGetLatestMessage() en la documentación de cypress-mailhog.

Comments are closed.