¿Alguien puede ayudar a resolver afirmando la siguiente respuesta:
{"rowId":"899103a2-a9b1-42t3-bc3w-6we638a43fc3","polygons":[{"polygon1":"40eea45f-ffc8-46vb-9ae6-26f5ba5edf4b","polygon2":{"type":"Polygon","geoId":[[[-45.428529,48.321791],[-45.428529,48.321791],[-45.428529,48.321791],[-45.428148,48.321653],[-45.428164,48.32163],[-45.428529,48.321791]]]}}]}Intenté con el siguiente código:
Cypress.Commands.add('updateResponse', (request, elementCss) => { cy.intercept(request, '**/api/rows*').as('update') cy.xpath(elementCss) .click() .wait('@update', { timeout: 20000 }) .then((xhr) => { cy.log(JSON.stringify(xhr.response.body)) .its('response.statusCode') .should('eq', 200) .its('rowId') .should('not.be.empty') }) })donde la variable de solicitud es solicitud POST .
Logrado solo para afirmar que el código de respuesta es 200 . Para la segunda afirmación, rowID no está vacío, recibí un error:
"*Timed out retrying after 10000ms: cy.its() errored because the property: rowId does not exist on your subject.*"Quiero afirmar, también, que la matriz de polígono2 no está vacía y tiene datos dentro de geoId .
¿Que estoy haciendo mal? Gracias de antemano
Puedes hacer algo como esto:
Cypress.Commands.add("updateResponse", (request, elementCss) => { cy.intercept(request, "**/api/rows*").as("update") cy.xpath(elementCss) .click() .wait("@update", { timeout: 20000 }) .then((xhr) => { expect(xhr.status).to.eq(200) expect(xhr.body).to.have.property( "rowId", "899103a2-a9b1-42t3-bc3w-6we638a43fc3" ) expect(xhr.body.rowId).not.to.be.empty }) }) O, en su caso, en lugar de solo rowId de fila, debe proporcionar response.body.rowId
Cypress.Commands.add("updateResponse", (request, elementCss) => { cy.intercept(request, "**/api/rows*").as("update") cy.xpath(elementCss) .click() .wait("@update", { timeout: 20000 }) .then((response) => { cy.log(JSON.stringify(response.body)) .its("response.statusCode") .should("eq", 200) .its("response.body.rowId") .should("not.be.empty") }) })