Quiero afirmar si mi cuerpo de respuesta no contiene algún valor proporcionado. El cuerpo tiene, supongamos, 10 objetos. Todos los objetos tienen campo "id". ¿Cómo usar algún tipo de each o forEach en la respuesta de la solicitud? Sé que puedo usar, por ejemplo
expect(response.body[0].requestId).not.eq(value); expect(response.body[1].requestId).not.eq(value); expect(response.body[2].requestId).not.eq(value); expect(response.body[3].requestId).not.eq(value);pero no sé cómo codificarlo de una manera más optimizada.
Preparé la matriz con:
const bodyObjects = [ 'body[0]', 'body[1]', 'body[2]', 'body[3]', 'body[4]', ];Mi código
it.only("Something "A" should not see something "B"", () => { const bodyObjects = [ 'body[0]', 'body[1]', 'body[2]', 'body[3]', 'body[4]', ]; cy.request({ method: "POST", url: Cypress.env("URL", auth: { bearer: token, }, body: { id: someId, }, }).then((response, $bodyObjects) => { responseId = response.body.id; expect(response.status).to.eq(201); **MY POTENTIAL ASSERTION** }) });Teniendo en cuenta que response.body es una matriz, puede usar un bucle forEach para iterar a través de ellos:
responde.body.forEach(res => { expect(res.requestId).not.eq(value) })Puedes aplicar un forEach así:
it.only('Something "A" should not see something "B""', () => { const bodyObjects = ['body[0]', 'body[1]', 'body[2]', 'body[3]', 'body[4]'] cy.request({ method: 'POST', url: Cypress.env('URL'), auth: { bearer: token, }, body: { id: someId, }, }).then((response, $bodyObjects) => { responseId = response.body.id expect(response.status).to.eq(201) bodyObjects.forEach((bodyObject) => { expect(response[bodyObject].requestId).not.eq(value) }) }) })