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.

Modificar datos de accesorios en Cypress e interceptarlos.

Digamos que tengo este setting.json:

{ data: { isDark: false } }

y lo intercepto de la siguiente manera:

cy.intercept("api/setting", {
    fixture: `setting.json`,
})

funcionó.

Pero definitivamente no quiero crear un archivo para cada nueva propiedad en setting.json o cuando isDark sea verdadero. Entonces, ¿cómo puedo cambiar los valores de las propiedades de setting.json en mi prueba?

Intenté lo siguiente:

cy.intercept("api/setting", async (req) => {
    const settingFixture = await cy.fixture('setting.json')

    req.continue((res) => {
        res.send(settingFixture.map((object) => ({ ...object, isDark: true })))
    })

    cy.visit('algún lugar')
})

pero no funciona.

Tags:  ,

Answer

  1. Avatar for davy.ai

    Para cambiar los valores de propiedad del archivo setting.json en tu prueba, puedes usar el siguiente código:

    cy.intercept("api/setting", (req) => {
      req.continue((res) => {
        const setting = JSON.parse(res.body)
        setting.data.isDark = true
        res.send(JSON.stringify(setting))
      })
      cy.visit('algún lugar')
    })
    

    Este código intercepta la solicitud a “api/setting” y modifica la respuesta para establecer la propiedad isDark en true. Esto se logra mediante el análisis del cuerpo de respuesta como JSON, la modificación de la propiedad isDark y luego la transformación del JSON modificado en una cadena para enviarla como el nuevo cuerpo de respuesta.

    Ten en cuenta que este código asume que el cuerpo de respuesta es una cadena JSON válida que contiene el objeto data con la propiedad isDark. Si este no es el caso, es posible que debas ajustar el código en consecuencia.

Comments are closed.