From 97c81ff4c30dddff10dd9f16ddb622a58336b0d0 Mon Sep 17 00:00:00 2001 From: Pa1NarK <69745008+pixincreate@users.noreply.github.com> Date: Mon, 23 Dec 2024 17:50:09 +0530 Subject: [PATCH] feat(cypress): valdiate `error_code` and `error_message` and make it visible in `reports` (#6913) --- cypress-tests/cypress/support/commands.js | 128 +++++++++++++--------- 1 file changed, 76 insertions(+), 52 deletions(-) diff --git a/cypress-tests/cypress/support/commands.js b/cypress-tests/cypress/support/commands.js index 89691f041018..891c65914922 100644 --- a/cypress-tests/cypress/support/commands.js +++ b/cypress-tests/cypress/support/commands.js @@ -38,6 +38,13 @@ function logRequestId(xRequestId) { } } +function validateErrorMessage(response, resData) { + if (resData.body.status !== "failed") { + expect(response.body.error_message).to.be.null; + expect(response.body.error_code).to.be.null; + } +} + Cypress.Commands.add( "merchantCreateCallTest", (merchantCreateBody, globalState) => { @@ -1113,6 +1120,8 @@ Cypress.Commands.add( ).to.be.null; expect(response.body.connector_mandate_id, "connector_mandate_id").to.be .null; + + validateErrorMessage(response, resData); } else { defaultErrorHandler(response, resData); } @@ -1319,6 +1328,8 @@ Cypress.Commands.add( expect(response.body.profile_id, "profile_id").to.equal(profileId).and .to.not.be.null; + validateErrorMessage(response, resData); + if (response.body.capture_method === "automatic") { if (response.body.authentication_type === "three_ds") { expect(response.body) @@ -1419,64 +1430,68 @@ Cypress.Commands.add( globalState.set("connectorId", response.body.connector); globalState.set("paymentMethodType", confirmBody.payment_method_type); - switch (response.body.authentication_type) { - case "three_ds": - if ( - response.body.capture_method === "automatic" || - response.body.capture_method === "manual" - ) { - if (response.body.status !== "failed") { - // we get many statuses here, hence this verification - if ( - connectorId === "adyen" && - response.body.payment_method_type === "blik" - ) { - expect(response.body) - .to.have.property("next_action") - .to.have.property("type") - .to.equal("wait_screen_information"); - } else { - expect(response.body) - .to.have.property("next_action") - .to.have.property("redirect_to_url"); - globalState.set( - "nextActionUrl", - response.body.next_action.redirect_to_url + if (response.status === 200) { + validateErrorMessage(response, resData); + + switch (response.body.authentication_type) { + case "three_ds": + if ( + response.body.capture_method === "automatic" || + response.body.capture_method === "manual" + ) { + if (response.body.status !== "failed") { + // we get many statuses here, hence this verification + if ( + connectorId === "adyen" && + response.body.payment_method_type === "blik" + ) { + expect(response.body) + .to.have.property("next_action") + .to.have.property("type") + .to.equal("wait_screen_information"); + } else { + expect(response.body) + .to.have.property("next_action") + .to.have.property("redirect_to_url"); + globalState.set( + "nextActionUrl", + response.body.next_action.redirect_to_url + ); + } + } else if (response.body.status === "failed") { + expect(response.body.error_code).to.equal( + resData.body.error_code ); } - } else if (response.body.status === "failed") { - expect(response.body.error_code).to.equal( - resData.body.error_code + } else { + throw new Error( + `Invalid capture method ${response.body.capture_method}` ); } - } else { - throw new Error( - `Invalid capture method ${response.body.capture_method}` - ); - } - break; - case "no_three_ds": - if ( - response.body.capture_method === "automatic" || - response.body.capture_method === "manual" - ) { - expect(response.body) - .to.have.property("next_action") - .to.have.property("redirect_to_url"); - globalState.set( - "nextActionUrl", - response.body.next_action.redirect_to_url - ); - } else { + break; + case "no_three_ds": + if ( + response.body.capture_method === "automatic" || + response.body.capture_method === "manual" + ) { + expect(response.body) + .to.have.property("next_action") + .to.have.property("redirect_to_url"); + globalState.set( + "nextActionUrl", + response.body.next_action.redirect_to_url + ); + } else { + throw new Error( + `Invalid capture method ${response.body.capture_method}` + ); + } + break; + default: throw new Error( - `Invalid capture method ${response.body.capture_method}` + `Invalid authentication type ${response.body.authentication_type}` ); - } - break; - default: - throw new Error( - `Invalid authentication type ${response.body.authentication_type}` - ); + } } } else { defaultErrorHandler(response, resData); @@ -1521,6 +1536,9 @@ Cypress.Commands.add( expect(response.headers["content-type"]).to.include("application/json"); if (response.status === 200) { globalState.set("paymentID", paymentIntentID); + + validateErrorMessage(response, resData); + if ( response.body.capture_method === "automatic" || response.body.capture_method === "manual" @@ -1601,6 +1619,8 @@ Cypress.Commands.add( logRequestId(response.headers["x-request-id"]); expect(response.headers["content-type"]).to.include("application/json"); if (response.status === 200) { + validateErrorMessage(response, resData); + if ( response.body.capture_method === "automatic" || response.body.capture_method === "manual" @@ -1698,6 +1718,8 @@ Cypress.Commands.add( expect(response.body.profile_id, "profile_id").to.not.be.null; expect(response.body).to.have.property("status"); + validateErrorMessage(response, resData); + if (response.body.capture_method === "automatic") { if (response.body.authentication_type === "three_ds") { expect(response.body) @@ -1819,6 +1841,8 @@ Cypress.Commands.add( expect(response.body.profile_id, "profile_id").to.not.be.null; expect(response.body.payment_token, "payment_token").to.not.be.null; + validateErrorMessage(response, resData); + if (response.body.capture_method === "automatic") { if (response.body.authentication_type === "three_ds") { expect(response.body)