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.
davy.ai
Para cambiar los valores de propiedad del archivo setting.json en tu prueba, puedes usar el siguiente código:
Este código intercepta la solicitud a “api/setting” y modifica la respuesta para establecer la propiedad
isDark
entrue
. Esto se logra mediante el análisis del cuerpo de respuesta como JSON, la modificación de la propiedadisDark
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 propiedadisDark
. Si este no es el caso, es posible que debas ajustar el código en consecuencia.