ci(cypress): verify payment_method_status for respective attempt status (#7496)

Co-authored-by: hyperswitch-bot[bot] <148525504+hyperswitch-bot[bot]@users.noreply.github.com>
This commit is contained in:
Pa1NarK
2025-04-02 11:50:39 +05:30
committed by GitHub
parent 01bdea783a
commit a7f8560a2d
20 changed files with 399 additions and 152 deletions

View File

@ -544,7 +544,7 @@ export const connectorDetails = {
Response: {
status: 200,
body: {
status: "succeeded",
status: "requires_customer_action",
},
},
},

View File

@ -535,7 +535,7 @@ export const connectorDetails = {
Response: {
status: 200,
body: {
status: "succeeded",
status: "requires_customer_action",
},
},
},

View File

@ -293,7 +293,7 @@ export const connectorDetails = {
Response: {
status: 200,
body: {
status: "succeeded",
status: "requires_customer_action",
},
},
},

View File

@ -309,7 +309,7 @@ export const connectorDetails = {
Response: {
status: 200,
body: {
status: "succeeded",
status: "requires_customer_action",
},
},
},

View File

@ -183,6 +183,14 @@ describe("Card - SaveCard payment flow test", () => {
if (shouldContinue)
shouldContinue = utils.should_continue_further(data);
});
it("retrieve-payment-call-test", () => {
const data = getConnectorDetails(globalState.get("connectorId"))[
"card_pm"
]["Capture"];
cy.retrievePaymentCallTest(globalState, data);
});
}
);
@ -276,6 +284,14 @@ describe("Card - SaveCard payment flow test", () => {
if (shouldContinue)
shouldContinue = utils.should_continue_further(data);
});
it("retrieve-payment-call-test", () => {
const data = getConnectorDetails(globalState.get("connectorId"))[
"card_pm"
]["PartialCapture"];
cy.retrievePaymentCallTest(globalState, data);
});
}
);
@ -405,6 +421,14 @@ describe("Card - SaveCard payment flow test", () => {
shouldContinue = utils.should_continue_further(data);
});
it("retrieve-payment-call-test", () => {
const data = getConnectorDetails(globalState.get("connectorId"))[
"card_pm"
]["Capture"];
cy.retrievePaymentCallTest(globalState, data);
});
it("retrieve-customerPM-call-test", () => {
cy.listCustomerPMCallTest(globalState);
});

View File

@ -45,6 +45,14 @@ describe("Card - SingleUse Mandates flow test", () => {
shouldContinue = utils.should_continue_further(data);
});
it("retrieve-payment-call-test", () => {
const data = getConnectorDetails(globalState.get("connectorId"))[
"card_pm"
]["ZeroAuthMandate"];
cy.retrievePaymentCallTest(globalState, data);
});
it("Confirm No 3DS MIT", () => {
const data = getConnectorDetails(globalState.get("connectorId"))[
"card_pm"
@ -59,6 +67,14 @@ describe("Card - SingleUse Mandates flow test", () => {
globalState
);
});
it("retrieve-payment-call-test", () => {
const data = getConnectorDetails(globalState.get("connectorId"))[
"card_pm"
]["MITAutoCapture"];
cy.retrievePaymentCallTest(globalState, data);
});
}
);
context(
@ -91,6 +107,14 @@ describe("Card - SingleUse Mandates flow test", () => {
shouldContinue = utils.should_continue_further(data);
});
it("retrieve-payment-call-test", () => {
const data = getConnectorDetails(globalState.get("connectorId"))[
"card_pm"
]["ZeroAuthMandate"];
cy.retrievePaymentCallTest(globalState, data);
});
it("Confirm No 3DS MIT", () => {
const data = getConnectorDetails(globalState.get("connectorId"))[
"card_pm"
@ -105,6 +129,15 @@ describe("Card - SingleUse Mandates flow test", () => {
globalState
);
});
it("retrieve-payment-call-test", () => {
const data = getConnectorDetails(globalState.get("connectorId"))[
"card_pm"
]["MITAutoCapture"];
cy.retrievePaymentCallTest(globalState, data);
});
it("Confirm No 3DS MIT", () => {
const data = getConnectorDetails(globalState.get("connectorId"))[
"card_pm"
@ -119,6 +152,14 @@ describe("Card - SingleUse Mandates flow test", () => {
globalState
);
});
it("retrieve-payment-call-test", () => {
const data = getConnectorDetails(globalState.get("connectorId"))[
"card_pm"
]["MITAutoCapture"];
cy.retrievePaymentCallTest(globalState, data);
});
}
);
@ -198,5 +239,13 @@ describe("Card - SingleUse Mandates flow test", () => {
if (shouldContinue) shouldContinue = utils.should_continue_further(data);
});
it("retrieve-payment-call-test", () => {
const data = getConnectorDetails(globalState.get("connectorId"))[
"card_pm"
]["SaveCardConfirmAutoCaptureOffSession"];
cy.retrievePaymentCallTest(globalState, data);
});
});
});

View File

@ -109,7 +109,7 @@ describe("Bank Redirect tests", () => {
});
it("Handle bank redirect redirection", () => {
// return_url is a static url (https://hyperswitch.io) taken from confirm-body fixture and is not updated
// return_url is a static url (https://example.com) taken from confirm-body fixture and is not updated
const expected_redirection = fixtures.confirmBody["return_url"];
const payment_method_type = globalState.get("paymentMethodType");
@ -171,7 +171,7 @@ describe("Bank Redirect tests", () => {
});
it("Handle bank redirect redirection", () => {
// return_url is a static url (https://hyperswitch.io) taken from confirm-body fixture and is not updated
// return_url is a static url (https://example.com) taken from confirm-body fixture and is not updated
const expected_redirection = fixtures.confirmBody["return_url"];
const payment_method_type = globalState.get("paymentMethodType");
cy.handleBankRedirectRedirection(
@ -231,7 +231,7 @@ describe("Bank Redirect tests", () => {
});
it("Handle bank redirect redirection", () => {
// return_url is a static url (https://hyperswitch.io) taken from confirm-body fixture and is not updated
// return_url is a static url (https://example.com) taken from confirm-body fixture and is not updated
const expected_redirection = fixtures.confirmBody["return_url"];
const payment_method_type = globalState.get("paymentMethodType");
cy.handleBankRedirectRedirection(

View File

@ -62,6 +62,14 @@ describe("Card - Mandates using Payment Method Id flow test", () => {
shouldContinue = utils.should_continue_further(data);
});
it("retrieve-payment-call-test", () => {
const data = getConnectorDetails(globalState.get("connectorId"))[
"card_pm"
]["PaymentMethodIdMandateNo3DSAutoCapture"];
cy.retrievePaymentCallTest(globalState, data);
});
it("Confirm No 3DS MIT", () => {
const data = getConnectorDetails(globalState.get("connectorId"))[
"card_pm"
@ -76,6 +84,14 @@ describe("Card - Mandates using Payment Method Id flow test", () => {
globalState
);
});
it("retrieve-payment-call-test", () => {
const data = getConnectorDetails(globalState.get("connectorId"))[
"card_pm"
]["MITAutoCapture"];
cy.retrievePaymentCallTest(globalState, data);
});
}
);
@ -137,6 +153,13 @@ describe("Card - Mandates using Payment Method Id flow test", () => {
shouldContinue = utils.should_continue_further(data);
});
it("retrieve-payment-call-test", () => {
const data = getConnectorDetails(globalState.get("connectorId"))[
"card_pm"
]["Capture"];
cy.retrievePaymentCallTest(globalState, data);
});
it("Confirm No 3DS MIT", () => {
const data = getConnectorDetails(globalState.get("connectorId"))[
"card_pm"
@ -151,6 +174,14 @@ describe("Card - Mandates using Payment Method Id flow test", () => {
globalState
);
});
it("retrieve-payment-call-test", () => {
const data = getConnectorDetails(globalState.get("connectorId"))[
"card_pm"
]["MITAutoCapture"];
cy.retrievePaymentCallTest(globalState, data);
});
}
);
@ -184,6 +215,14 @@ describe("Card - Mandates using Payment Method Id flow test", () => {
shouldContinue = utils.should_continue_further(data);
});
it("retrieve-payment-call-test", () => {
const data = getConnectorDetails(globalState.get("connectorId"))[
"card_pm"
]["PaymentMethodIdMandateNo3DSAutoCapture"];
cy.retrievePaymentCallTest(globalState, data);
});
it("Confirm No 3DS MIT", () => {
const data = getConnectorDetails(globalState.get("connectorId"))[
"card_pm"
@ -198,6 +237,15 @@ describe("Card - Mandates using Payment Method Id flow test", () => {
globalState
);
});
it("retrieve-payment-call-test", () => {
const data = getConnectorDetails(globalState.get("connectorId"))[
"card_pm"
]["MITAutoCapture"];
cy.retrievePaymentCallTest(globalState, data);
});
it("Confirm No 3DS MIT", () => {
const data = getConnectorDetails(globalState.get("connectorId"))[
"card_pm"
@ -212,6 +260,14 @@ describe("Card - Mandates using Payment Method Id flow test", () => {
globalState
);
});
it("retrieve-payment-call-test", () => {
const data = getConnectorDetails(globalState.get("connectorId"))[
"card_pm"
]["MITAutoCapture"];
cy.retrievePaymentCallTest(globalState, data);
});
}
);
@ -256,6 +312,14 @@ describe("Card - Mandates using Payment Method Id flow test", () => {
shouldContinue = utils.should_continue_further(data);
});
it("retrieve-payment-call-test", () => {
const data = getConnectorDetails(globalState.get("connectorId"))[
"card_pm"
]["Capture"];
cy.retrievePaymentCallTest(globalState, data);
});
it("Confirm No 3DS MIT 1", () => {
const data = getConnectorDetails(globalState.get("connectorId"))[
"card_pm"
@ -285,6 +349,14 @@ describe("Card - Mandates using Payment Method Id flow test", () => {
shouldContinue = utils.should_continue_further(data);
});
it("retrieve-payment-call-test", () => {
const data = getConnectorDetails(globalState.get("connectorId"))[
"card_pm"
]["Capture"];
cy.retrievePaymentCallTest(globalState, data);
});
it("Confirm No 3DS MIT 2", () => {
const data = getConnectorDetails(globalState.get("connectorId"))[
"card_pm"
@ -310,6 +382,14 @@ describe("Card - Mandates using Payment Method Id flow test", () => {
if (shouldContinue)
shouldContinue = utils.should_continue_further(data);
});
it("retrieve-payment-call-test", () => {
const data = getConnectorDetails(globalState.get("connectorId"))[
"card_pm"
]["Capture"];
cy.retrievePaymentCallTest(globalState, data);
});
}
);
@ -407,6 +487,14 @@ describe("Card - Mandates using Payment Method Id flow test", () => {
cy.handleRedirection(globalState, expected_redirection);
});
it("retrieve-payment-call-test", () => {
const data = getConnectorDetails(globalState.get("connectorId"))[
"card_pm"
]["PaymentMethodIdMandate3DSAutoCapture"];
cy.retrievePaymentCallTest(globalState, data);
});
it("Confirm No 3DS MIT", () => {
const data = getConnectorDetails(globalState.get("connectorId"))[
"card_pm"
@ -421,6 +509,7 @@ describe("Card - Mandates using Payment Method Id flow test", () => {
globalState
);
});
it("Confirm No 3DS MIT", () => {
const data = getConnectorDetails(globalState.get("connectorId"))[
"card_pm"
@ -484,6 +573,14 @@ describe("Card - Mandates using Payment Method Id flow test", () => {
shouldContinue = utils.should_continue_further(data);
});
it("retrieve-payment-call-test", () => {
const data = getConnectorDetails(globalState.get("connectorId"))[
"card_pm"
]["Capture"];
cy.retrievePaymentCallTest(globalState, data);
});
it("Confirm No 3DS MIT", () => {
const data = getConnectorDetails(globalState.get("connectorId"))[
"card_pm"

View File

@ -154,7 +154,7 @@ describe("Volume Based Routing Test", () => {
});
it("Handle bank redirect redirection", () => {
// return_url is a static url (https://hyperswitch.io) taken from confirm-body fixture and is not updated
// return_url is a static url (https://example.com) taken from confirm-body fixture and is not updated
const expected_redirection = fixtures.confirmBody["return_url"];
const payment_method_type = globalState.get("paymentMethodType");
cy.handleBankRedirectRedirection(
@ -267,7 +267,7 @@ describe("Volume Based Routing Test", () => {
});
it("Handle bank redirect redirection", () => {
// return_url is a static url (https://hyperswitch.io) taken from confirm-body fixture and is not updated
// return_url is a static url (https://example.com) taken from confirm-body fixture and is not updated
const expected_redirection = fixtures.confirmBody["return_url"];
const payment_method_type = globalState.get("paymentMethodType");
cy.handleBankRedirectRedirection(

View File

@ -202,7 +202,7 @@ describe("Rule Based Routing Test", () => {
});
it("Handle bank redirect redirection", () => {
// return_url is a static url (https://hyperswitch.io) taken from confirm-body fixture and is not updated
// return_url is a static url (https://example.com) taken from confirm-body fixture and is not updated
const expected_redirection = fixtures.confirmBody["return_url"];
const payment_method_type = globalState.get("paymentMethodType");
cy.handleBankRedirectRedirection(

View File

@ -1,6 +1,6 @@
{
"client_secret": "",
"return_url": "https://hyperswitch.io",
"return_url": "https://example.com",
"confirm": true,
"customer_acceptance": {
"acceptance_type": "offline",

View File

@ -11,7 +11,7 @@
"phone_country_code": "+65",
"description": "Its my first payment request",
"authentication_type": "no_three_ds",
"return_url": "https://hyperswitch.io",
"return_url": "https://example.com",
"setup_future_usage": "on_session",
"customer_acceptance": {
"acceptance_type": "offline",

View File

@ -11,7 +11,7 @@
"phone_country_code": "+65",
"description": "Its my first payment request",
"authentication_type": "no_three_ds",
"return_url": "https://hyperswitch.io",
"return_url": "https://example.com",
"payment_method": "card",
"payment_method_type": "debit",
"payment_method_data": {

View File

@ -3,7 +3,7 @@
"currency": "USD",
"confirm": true,
"payment_method": "card",
"return_url": "https://hyperswitch.io",
"return_url": "https://example.com",
"email": "example@email.com",
"recurring_details": {
"type": "network_transaction_id_and_card_details",

View File

@ -3,7 +3,7 @@
"currency": "USD",
"confirm": true,
"customer_id": "customer098765",
"return_url": "https://hyperswitch.io",
"return_url": "https://example.com",
"recurring_details": {
"type": "payment_method_id",
"data": "{{payment_method_id}}"

View File

@ -21,7 +21,7 @@
"country": "US"
}
},
"return_url": "https://hyperswitch.io",
"return_url": "https://example.com",
"webhook_details": {
"webhook_version": "1.0.1",
"webhook_username": "ekart_retail",

View File

@ -21,7 +21,7 @@
"country": "US"
}
},
"return_url": "https://hyperswitch.io",
"return_url": "https://example.com",
"webhook_details": {
"webhook_version": "1.0.1",
"webhook_username": "ekart_retail",

View File

@ -2155,6 +2155,16 @@ Cypress.Commands.add(
"nextActionUrl",
response.body.next_action.redirect_to_url
);
if (
response.body?.payment_method_id &&
response.body.payment_method_id !== null
) {
expect(
response.body.payment_method_status,
"payment_method_status"
).to.equal("active");
}
} else if (response.body.authentication_type === "no_three_ds") {
for (const key in resData.body) {
expect(resData.body[key]).to.equal(response.body[key]);
@ -2162,6 +2172,28 @@ Cypress.Commands.add(
expect(response.body.customer_id).to.equal(
globalState.get("customerId")
);
if (
[
"partially_captured",
"requires_capture",
"succeeded",
].includes(response.body.status)
) {
expect(
response.body.payment_method_id,
"payment_method_id should exist for succeeded/requires_capture status"
).to.exist.and.to.be.a("string");
expect(
response.body.payment_method_id,
"payment_method_id"
).to.include("pm_");
expect(
response.body.payment_method_status,
"payment_method_status"
).to.equal("active");
}
} else {
// Handle other authentication types as needed
throw new Error(
@ -2319,8 +2351,9 @@ Cypress.Commands.add(
globalState.get("paymentAmount")
);
expect(response.body.profile_id, "profile_id").to.not.be.null;
expect(response.body.billing, "billing_address").to.not.be.empty;
expect(response.body.billing, "billing_address").to.not.be.null;
expect(response.body.customer, "customer").to.not.be.empty;
if (
["succeeded", "processing", "requires_customer_action"].includes(
response.body.status
@ -2339,6 +2372,39 @@ Cypress.Commands.add(
).to.equal(merchant_connector_id);
}
if (
response.body.payment_method_id &&
typeof response.body.payment_method_id === "string"
) {
// Validate the payment_method_id format
expect(
response.body.payment_method_id,
"payment_method_id"
).to.include("pm_").and.to.not.be.null;
const activeStatuses = [
"succeeded",
"requires_capture",
"partially_captured",
];
// If capture method is manual, 'processing' status also means 'active'
// for the payment method's usability.
if (response.body.capture_method === "manual") {
activeStatuses.push("processing");
}
const expectedStatus = activeStatuses.includes(response.body.status)
? "active"
: "inactive";
// Validate the status
expect(
response.body.payment_method_status,
"payment_method_status"
).to.equal(expectedStatus);
}
if (autoretries) {
expect(response.body).to.have.property("attempts");
expect(response.body.attempts).to.be.an("array").and.not.empty;

View File

@ -9,16 +9,16 @@
"version": "1.0.0",
"license": "ISC",
"devDependencies": {
"@eslint/js": "^9.20.0",
"cypress": "^14.2.0",
"@eslint/js": "^9.23.0",
"cypress": "^14.2.1",
"cypress-mochawesome-reporter": "^3.8.2",
"eslint": "^9.20.1",
"eslint-config-prettier": "^10.0.1",
"eslint-plugin-cypress": "^4.1.0",
"eslint-plugin-prettier": "^5.2.3",
"globals": "^15.15.0",
"eslint": "^9.23.0",
"eslint-config-prettier": "^10.1.1",
"eslint-plugin-cypress": "^4.2.0",
"eslint-plugin-prettier": "^5.2.5",
"globals": "^16.0.0",
"jsqr": "^1.4.0",
"prettier": "^3.5.1"
"prettier": "^3.5.3"
}
},
"node_modules/@colors/colors": {
@ -33,9 +33,9 @@
}
},
"node_modules/@cypress/request": {
"version": "3.0.7",
"resolved": "https://registry.npmjs.org/@cypress/request/-/request-3.0.7.tgz",
"integrity": "sha512-LzxlLEMbBOPYB85uXrDqvD4MgcenjRBLIns3zyhx7vTPj/0u2eQhzXvPiGcaJrV38Q9dbkExWp6cOHPJ+EtFYg==",
"version": "3.0.8",
"resolved": "https://registry.npmjs.org/@cypress/request/-/request-3.0.8.tgz",
"integrity": "sha512-h0NFgh1mJmm1nr4jCwkGHwKneVYKghUyWe6TMNrk0B9zsjAJxpg8C4/+BAcmLgCPa1vj1V8rNUaILl+zYRUWBQ==",
"dev": true,
"license": "Apache-2.0",
"dependencies": {
@ -52,7 +52,7 @@
"json-stringify-safe": "~5.0.1",
"mime-types": "~2.1.19",
"performance-now": "^2.1.0",
"qs": "6.13.1",
"qs": "6.14.0",
"safe-buffer": "^5.1.2",
"tough-cookie": "^5.0.0",
"tunnel-agent": "^0.6.0",
@ -126,13 +126,13 @@
}
},
"node_modules/@eslint/config-array": {
"version": "0.19.0",
"resolved": "https://registry.npmjs.org/@eslint/config-array/-/config-array-0.19.0.tgz",
"integrity": "sha512-zdHg2FPIFNKPdcHWtiNT+jEFCHYVplAXRDlQDyqy0zGx/q2parwh7brGJSiTxRk/TSMkbM//zt/f5CHgyTyaSQ==",
"version": "0.19.2",
"resolved": "https://registry.npmjs.org/@eslint/config-array/-/config-array-0.19.2.tgz",
"integrity": "sha512-GNKqxfHG2ySmJOBSHg7LxeUx4xpuCoFjacmlCoYWEbaPXLwvfIjixRI12xCQZeULksQb23uiA8F40w5TojpV7w==",
"dev": true,
"license": "Apache-2.0",
"dependencies": {
"@eslint/object-schema": "^2.1.4",
"@eslint/object-schema": "^2.1.6",
"debug": "^4.3.1",
"minimatch": "^3.1.2"
},
@ -140,10 +140,20 @@
"node": "^18.18.0 || ^20.9.0 || >=21.1.0"
}
},
"node_modules/@eslint/config-helpers": {
"version": "0.2.0",
"resolved": "https://registry.npmjs.org/@eslint/config-helpers/-/config-helpers-0.2.0.tgz",
"integrity": "sha512-yJLLmLexii32mGrhW29qvU3QBVTu0GUmEf/J4XsBtVhp4JkIUFN/BjWqTF63yRvGApIDpZm5fa97LtYtINmfeQ==",
"dev": true,
"license": "Apache-2.0",
"engines": {
"node": "^18.18.0 || ^20.9.0 || >=21.1.0"
}
},
"node_modules/@eslint/core": {
"version": "0.10.0",
"resolved": "https://registry.npmjs.org/@eslint/core/-/core-0.10.0.tgz",
"integrity": "sha512-gFHJ+xBOo4G3WRlR1e/3G8A6/KZAH6zcE/hkLRCZTi/B9avAG365QhFA8uOGzTMqgTghpn7/fSnscW++dpMSAw==",
"version": "0.12.0",
"resolved": "https://registry.npmjs.org/@eslint/core/-/core-0.12.0.tgz",
"integrity": "sha512-cmrR6pytBuSMTaBweKoGMwu3EiHiEC+DoyupPmlZ0HxBJBtIxwe+j/E4XPIKNx+Q74c8lXKPwYawBf5glsTkHg==",
"dev": true,
"license": "Apache-2.0",
"dependencies": {
@ -154,9 +164,9 @@
}
},
"node_modules/@eslint/eslintrc": {
"version": "3.2.0",
"resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-3.2.0.tgz",
"integrity": "sha512-grOjVNN8P3hjJn/eIETF1wwd12DdnwFDoyceUJLYYdkpbwq3nLi+4fqrTAONx7XDALqlL220wC/RHSC/QTI/0w==",
"version": "3.3.1",
"resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-3.3.1.tgz",
"integrity": "sha512-gtF186CXhIl1p4pJNGZw8Yc6RlshoePRvE0X91oPGb3vZ8pM3qOS9W9NGPat9LziaBV7XrJWGylNQXkGcnM3IQ==",
"dev": true,
"license": "MIT",
"dependencies": {
@ -191,9 +201,9 @@
}
},
"node_modules/@eslint/js": {
"version": "9.20.0",
"resolved": "https://registry.npmjs.org/@eslint/js/-/js-9.20.0.tgz",
"integrity": "sha512-iZA07H9io9Wn836aVTytRaNqh00Sad+EamwOVJT12GTLw1VGMFV/4JaME+JjLtr9fiGaoWgYnS54wrfWsSs4oQ==",
"version": "9.23.0",
"resolved": "https://registry.npmjs.org/@eslint/js/-/js-9.23.0.tgz",
"integrity": "sha512-35MJ8vCPU0ZMxo7zfev2pypqTwWTofFZO6m4KAtdoFhRpLJUpHTZZ+KB3C7Hb1d7bULYwO4lJXGCi5Se+8OMbw==",
"dev": true,
"license": "MIT",
"engines": {
@ -201,9 +211,9 @@
}
},
"node_modules/@eslint/object-schema": {
"version": "2.1.4",
"resolved": "https://registry.npmjs.org/@eslint/object-schema/-/object-schema-2.1.4.tgz",
"integrity": "sha512-BsWiH1yFGjXXS2yvrf5LyuoSIIbPrGUWob917o+BTKuZ7qJdxX8aJLRxs1fS9n6r7vESrq1OUqb68dANcFXuQQ==",
"version": "2.1.6",
"resolved": "https://registry.npmjs.org/@eslint/object-schema/-/object-schema-2.1.6.tgz",
"integrity": "sha512-RBMg5FRL0I0gs51M/guSAj5/e14VQ4tpZnQNWwuDT66P14I43ItmPfIZRhO9fUVIPOAQXU47atlywZ/czoqFPA==",
"dev": true,
"license": "Apache-2.0",
"engines": {
@ -211,13 +221,13 @@
}
},
"node_modules/@eslint/plugin-kit": {
"version": "0.2.5",
"resolved": "https://registry.npmjs.org/@eslint/plugin-kit/-/plugin-kit-0.2.5.tgz",
"integrity": "sha512-lB05FkqEdUg2AA0xEbUz0SnkXT1LcCTa438W4IWTUh4hdOnVbQyOJ81OrDXsJk/LSiJHubgGEFoR5EHq1NsH1A==",
"version": "0.2.7",
"resolved": "https://registry.npmjs.org/@eslint/plugin-kit/-/plugin-kit-0.2.7.tgz",
"integrity": "sha512-JubJ5B2pJ4k4yGxaNLdbjrnk9d/iDz6/q8wOilpIowd6PJPgaxCuHBnBszq7Ce2TyMrywm5r4PnKm6V3iiZF+g==",
"dev": true,
"license": "Apache-2.0",
"dependencies": {
"@eslint/core": "^0.10.0",
"@eslint/core": "^0.12.0",
"levn": "^0.4.1"
},
"engines": {
@ -277,9 +287,9 @@
}
},
"node_modules/@humanwhocodes/retry": {
"version": "0.4.1",
"resolved": "https://registry.npmjs.org/@humanwhocodes/retry/-/retry-0.4.1.tgz",
"integrity": "sha512-c7hNEllBlenFTHBky65mhq8WD2kbN9Q6gk0bTk8lSBvc554jpXSkST1iePudpt7+A/AQvuHs9EMqjHDXMY1lrA==",
"version": "0.4.2",
"resolved": "https://registry.npmjs.org/@humanwhocodes/retry/-/retry-0.4.2.tgz",
"integrity": "sha512-xeO57FpIu4p1Ri3Jq/EXq4ClRm86dVF2z/+kvFnyqVYRavTZmaFaUBbWCOuuTh0o/g7DSsk6kc2vrS4Vl5oPOQ==",
"dev": true,
"license": "Apache-2.0",
"engines": {
@ -291,9 +301,9 @@
}
},
"node_modules/@pkgr/core": {
"version": "0.1.1",
"resolved": "https://registry.npmjs.org/@pkgr/core/-/core-0.1.1.tgz",
"integrity": "sha512-cq8o4cWH0ibXh9VGi5P20Tu9XF/0fFXl9EUinr9QfTM7a7p0oTA4iJRCQWppXR1Pg8dSM0UCItCkPwsk9qWWYA==",
"version": "0.2.0",
"resolved": "https://registry.npmjs.org/@pkgr/core/-/core-0.2.0.tgz",
"integrity": "sha512-vsJDAkYR6qCPu+ioGScGiMYR7LvZYIXh/dlQeviqoTWNCVfKTLYD/LkNWH4Mxsv2a5vpIRc77FN5DnmK1eBggQ==",
"dev": true,
"license": "MIT",
"engines": {
@ -354,9 +364,9 @@
}
},
"node_modules/acorn": {
"version": "8.14.0",
"resolved": "https://registry.npmjs.org/acorn/-/acorn-8.14.0.tgz",
"integrity": "sha512-cl669nCJTZBsL97OF4kUQm5g5hC2uihk0NxY3WENAC0TYdILVkAyHymAntgxGkl7K+t0cXIrH5siy5S4XkFycA==",
"version": "8.14.1",
"resolved": "https://registry.npmjs.org/acorn/-/acorn-8.14.1.tgz",
"integrity": "sha512-OvQ/2pUDKmgfCg++xsTX1wGxfTaszcHVcTctW4UJB4hibJx2HXxxO5UmVgyjMa+ZDsiaf5wWLXYpRWMmBI0QHg==",
"dev": true,
"license": "MIT",
"bin": {
@ -732,14 +742,14 @@
}
},
"node_modules/call-bound": {
"version": "1.0.3",
"resolved": "https://registry.npmjs.org/call-bound/-/call-bound-1.0.3.tgz",
"integrity": "sha512-YTd+6wGlNlPxSuri7Y6X8tY2dmm12UMH66RpKMhiX6rsk5wXXnYgbUcOt8kiS31/AjfoTOvCsE+w8nZQLQnzHA==",
"version": "1.0.4",
"resolved": "https://registry.npmjs.org/call-bound/-/call-bound-1.0.4.tgz",
"integrity": "sha512-+ys997U96po4Kx/ABpBCqhA9EuxJaQWDQg7295H4hBphv3IZg0boBKuwYpt4YXp6MZ5AmZQnU/tyMTlRpaSejg==",
"dev": true,
"license": "MIT",
"dependencies": {
"call-bind-apply-helpers": "^1.0.1",
"get-intrinsic": "^1.2.6"
"call-bind-apply-helpers": "^1.0.2",
"get-intrinsic": "^1.3.0"
},
"engines": {
"node": ">= 0.4"
@ -1034,13 +1044,13 @@
}
},
"node_modules/cypress": {
"version": "14.2.0",
"resolved": "https://registry.npmjs.org/cypress/-/cypress-14.2.0.tgz",
"integrity": "sha512-u7fuc9JEpSYLOdu8mzZDZ/JWsHUzR5pc8i1TeSqMz/bafXp+6IweMAeyphsEJ6/13qbB6nwTEY1m+GUAp6GqCQ==",
"version": "14.2.1",
"resolved": "https://registry.npmjs.org/cypress/-/cypress-14.2.1.tgz",
"integrity": "sha512-5xd0E7fUp0pjjib1D7ljkmCwFDgMkWuW06jWiz8dKrI7MNRrDo0C65i4Sh+oZ9YHjMHZRJBR0XZk1DfekOhOUw==",
"dev": true,
"hasInstallScript": true,
"dependencies": {
"@cypress/request": "^3.0.7",
"@cypress/request": "^3.0.8",
"@cypress/xvfb": "^1.2.4",
"@types/sinonjs__fake-timers": "8.1.1",
"@types/sizzle": "^2.3.2",
@ -1077,7 +1087,7 @@
"process": "^0.11.10",
"proxy-from-env": "1.0.0",
"request-progress": "^3.0.0",
"semver": "^7.5.3",
"semver": "^7.7.1",
"supports-color": "^8.1.1",
"tmp": "~0.2.3",
"tree-kill": "1.2.2",
@ -1368,22 +1378,23 @@
}
},
"node_modules/eslint": {
"version": "9.20.1",
"resolved": "https://registry.npmjs.org/eslint/-/eslint-9.20.1.tgz",
"integrity": "sha512-m1mM33o6dBUjxl2qb6wv6nGNwCAsns1eKtaQ4l/NPHeTvhiUPbtdfMyktxN4B3fgHIgsYh1VT3V9txblpQHq+g==",
"version": "9.23.0",
"resolved": "https://registry.npmjs.org/eslint/-/eslint-9.23.0.tgz",
"integrity": "sha512-jV7AbNoFPAY1EkFYpLq5bslU9NLNO8xnEeQXwErNibVryjk67wHVmddTBilc5srIttJDBrB0eMHKZBFbSIABCw==",
"dev": true,
"license": "MIT",
"dependencies": {
"@eslint-community/eslint-utils": "^4.2.0",
"@eslint-community/regexpp": "^4.12.1",
"@eslint/config-array": "^0.19.0",
"@eslint/core": "^0.11.0",
"@eslint/eslintrc": "^3.2.0",
"@eslint/js": "9.20.0",
"@eslint/plugin-kit": "^0.2.5",
"@eslint/config-array": "^0.19.2",
"@eslint/config-helpers": "^0.2.0",
"@eslint/core": "^0.12.0",
"@eslint/eslintrc": "^3.3.1",
"@eslint/js": "9.23.0",
"@eslint/plugin-kit": "^0.2.7",
"@humanfs/node": "^0.16.6",
"@humanwhocodes/module-importer": "^1.0.1",
"@humanwhocodes/retry": "^0.4.1",
"@humanwhocodes/retry": "^0.4.2",
"@types/estree": "^1.0.6",
"@types/json-schema": "^7.0.15",
"ajv": "^6.12.4",
@ -1391,7 +1402,7 @@
"cross-spawn": "^7.0.6",
"debug": "^4.3.2",
"escape-string-regexp": "^4.0.0",
"eslint-scope": "^8.2.0",
"eslint-scope": "^8.3.0",
"eslint-visitor-keys": "^4.2.0",
"espree": "^10.3.0",
"esquery": "^1.5.0",
@ -1428,22 +1439,22 @@
}
},
"node_modules/eslint-config-prettier": {
"version": "10.0.1",
"resolved": "https://registry.npmjs.org/eslint-config-prettier/-/eslint-config-prettier-10.0.1.tgz",
"integrity": "sha512-lZBts941cyJyeaooiKxAtzoPHTN+GbQTJFAIdQbRhA4/8whaAraEh47Whw/ZFfrjNSnlAxqfm9i0XVAEkULjCw==",
"version": "10.1.1",
"resolved": "https://registry.npmjs.org/eslint-config-prettier/-/eslint-config-prettier-10.1.1.tgz",
"integrity": "sha512-4EQQr6wXwS+ZJSzaR5ZCrYgLxqvUjdXctaEtBqHcbkW944B1NQyO4qpdHQbXBONfwxXdkAY81HH4+LUfrg+zPw==",
"dev": true,
"license": "MIT",
"bin": {
"eslint-config-prettier": "build/bin/cli.js"
"eslint-config-prettier": "bin/cli.js"
},
"peerDependencies": {
"eslint": ">=7.0.0"
}
},
"node_modules/eslint-plugin-cypress": {
"version": "4.1.0",
"resolved": "https://registry.npmjs.org/eslint-plugin-cypress/-/eslint-plugin-cypress-4.1.0.tgz",
"integrity": "sha512-JhqkMY02mw74USwK9OFhectx3YSj6Co1NgWBxlGdKvlqiAp9vdEuQqt33DKGQFvvGS/NWtduuhWXWNnU29xDSg==",
"version": "4.2.0",
"resolved": "https://registry.npmjs.org/eslint-plugin-cypress/-/eslint-plugin-cypress-4.2.0.tgz",
"integrity": "sha512-v5cyt0VYb1tEEODBJSE44PocYOwQsckyexJhCs7LtdD3FGO6D2GjnZB2s2Sts4RcxdxECTWX01nObOZRs26bQw==",
"dev": true,
"license": "MIT",
"dependencies": {
@ -1453,15 +1464,28 @@
"eslint": ">=9"
}
},
"node_modules/eslint-plugin-cypress/node_modules/globals": {
"version": "15.15.0",
"resolved": "https://registry.npmjs.org/globals/-/globals-15.15.0.tgz",
"integrity": "sha512-7ACyT3wmyp3I61S4fG682L0VA2RGD9otkqGJIwNUMF1SWUombIIk+af1unuDYgMm082aHYwD+mzJvv9Iu8dsgg==",
"dev": true,
"license": "MIT",
"engines": {
"node": ">=18"
},
"funding": {
"url": "https://github.com/sponsors/sindresorhus"
}
},
"node_modules/eslint-plugin-prettier": {
"version": "5.2.3",
"resolved": "https://registry.npmjs.org/eslint-plugin-prettier/-/eslint-plugin-prettier-5.2.3.tgz",
"integrity": "sha512-qJ+y0FfCp/mQYQ/vWQ3s7eUlFEL4PyKfAJxsnYTJ4YT73nsJBWqmEpFryxV9OeUiqmsTsYJ5Y+KDNaeP31wrRw==",
"version": "5.2.5",
"resolved": "https://registry.npmjs.org/eslint-plugin-prettier/-/eslint-plugin-prettier-5.2.5.tgz",
"integrity": "sha512-IKKP8R87pJyMl7WWamLgPkloB16dagPIdd2FjBDbyRYPKo93wS/NbCOPh6gH+ieNLC+XZrhJt/kWj0PS/DFdmg==",
"dev": true,
"license": "MIT",
"dependencies": {
"prettier-linter-helpers": "^1.0.0",
"synckit": "^0.9.1"
"synckit": "^0.10.2"
},
"engines": {
"node": "^14.18.0 || >=16.0.0"
@ -1472,7 +1496,7 @@
"peerDependencies": {
"@types/eslint": ">=8.0.0",
"eslint": ">=8.0.0",
"eslint-config-prettier": "*",
"eslint-config-prettier": ">= 7.0.0 <10.0.0 || >=10.1.0",
"prettier": ">=3.0.0"
},
"peerDependenciesMeta": {
@ -1485,9 +1509,9 @@
}
},
"node_modules/eslint-scope": {
"version": "8.2.0",
"resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-8.2.0.tgz",
"integrity": "sha512-PHlWUfG6lvPc3yvP5A4PNyBL1W8fkDUccmI21JUu/+GKZBoH/W5u6usENXUrWFRsyoW5ACUjFGgAFQp5gUlb/A==",
"version": "8.3.0",
"resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-8.3.0.tgz",
"integrity": "sha512-pUNxi75F8MJ/GdeKtVLSbYg4ZI34J6C0C7sbL4YOp2exGwen7ZsuBqKzUhXd0qMQ362yET3z+uPwKeg/0C2XCQ==",
"dev": true,
"license": "BSD-2-Clause",
"dependencies": {
@ -1514,19 +1538,6 @@
"url": "https://opencollective.com/eslint"
}
},
"node_modules/eslint/node_modules/@eslint/core": {
"version": "0.11.0",
"resolved": "https://registry.npmjs.org/@eslint/core/-/core-0.11.0.tgz",
"integrity": "sha512-DWUB2pksgNEb6Bz2fggIy1wh6fGgZP4Xyy/Mt0QZPiloKKXerbqq9D3SBQTlCRYOrcRPu4vuz+CGjwdfqxnoWA==",
"dev": true,
"license": "Apache-2.0",
"dependencies": {
"@types/json-schema": "^7.0.15"
},
"engines": {
"node": "^18.18.0 || ^20.9.0 || >=21.1.0"
}
},
"node_modules/espree": {
"version": "10.3.0",
"resolved": "https://registry.npmjs.org/espree/-/espree-10.3.0.tgz",
@ -1906,18 +1917,18 @@
}
},
"node_modules/get-intrinsic": {
"version": "1.2.7",
"resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.7.tgz",
"integrity": "sha512-VW6Pxhsrk0KAOqs3WEd0klDiF/+V7gQOpAvY1jVU/LHmaD/kQO4523aiJuikX/QAKYiW6x8Jh+RJej1almdtCA==",
"version": "1.3.0",
"resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.3.0.tgz",
"integrity": "sha512-9fSjSaos/fRIVIp+xSJlE6lfwhES7LNtKaCBIamHsjr2na1BiABJPo0mOjjz8GJDURarmCPGqaiVg5mfjb98CQ==",
"dev": true,
"license": "MIT",
"dependencies": {
"call-bind-apply-helpers": "^1.0.1",
"call-bind-apply-helpers": "^1.0.2",
"es-define-property": "^1.0.1",
"es-errors": "^1.3.0",
"es-object-atoms": "^1.0.0",
"es-object-atoms": "^1.1.1",
"function-bind": "^1.1.2",
"get-proto": "^1.0.0",
"get-proto": "^1.0.1",
"gopd": "^1.2.0",
"has-symbols": "^1.1.0",
"hasown": "^2.0.2",
@ -2057,9 +2068,9 @@
}
},
"node_modules/globals": {
"version": "15.15.0",
"resolved": "https://registry.npmjs.org/globals/-/globals-15.15.0.tgz",
"integrity": "sha512-7ACyT3wmyp3I61S4fG682L0VA2RGD9otkqGJIwNUMF1SWUombIIk+af1unuDYgMm082aHYwD+mzJvv9Iu8dsgg==",
"version": "16.0.0",
"resolved": "https://registry.npmjs.org/globals/-/globals-16.0.0.tgz",
"integrity": "sha512-iInW14XItCXET01CQFqudPOWP2jYMl7T+QRQT+UNcR/iQncN/F0UNpgd76iFkBPgNQb4+X3LV9tLJYzwh+Gl3A==",
"dev": true,
"license": "MIT",
"engines": {
@ -2209,9 +2220,9 @@
}
},
"node_modules/import-fresh": {
"version": "3.3.0",
"resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz",
"integrity": "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==",
"version": "3.3.1",
"resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.1.tgz",
"integrity": "sha512-TR3KfrTZTYLPB6jUjfx6MF9WcWrHL9su5TObK4ZkYgBdWKPOFoSoQIdEuTuR82pmtxH2spWG9h6etwfr1pLBqQ==",
"dev": true,
"license": "MIT",
"dependencies": {
@ -3458,9 +3469,9 @@
}
},
"node_modules/prettier": {
"version": "3.5.1",
"resolved": "https://registry.npmjs.org/prettier/-/prettier-3.5.1.tgz",
"integrity": "sha512-hPpFQvHwL3Qv5AdRvBFMhnKo4tYxp0ReXiPn2bxkiohEX6mBeBwEpBSQTkD458RaaDKQMYSp4hX4UtfUTA5wDw==",
"version": "3.5.3",
"resolved": "https://registry.npmjs.org/prettier/-/prettier-3.5.3.tgz",
"integrity": "sha512-QQtaxnoDJeAkDvDKWCLiwIXkTgRhwYDEQCghU9Z6q03iyek/rxRh/2lC3HB7P8sWT2xC/y5JDctPLBIGzHKbhw==",
"dev": true,
"license": "MIT",
"bin": {
@ -3550,13 +3561,13 @@
}
},
"node_modules/qs": {
"version": "6.13.1",
"resolved": "https://registry.npmjs.org/qs/-/qs-6.13.1.tgz",
"integrity": "sha512-EJPeIn0CYrGu+hli1xilKAPXODtJ12T0sP63Ijx2/khC2JtuaN3JyNIpvmnkmaEtha9ocbG4A4cMcr+TvqvwQg==",
"version": "6.14.0",
"resolved": "https://registry.npmjs.org/qs/-/qs-6.14.0.tgz",
"integrity": "sha512-YWWTjgABSKcvs/nWBi9PycY/JiPJqOD4JA6o9Sej2AtvSGarXxKC3OQSk4pAarbdQlKAh5D4FCQkJNkW+GAn3w==",
"dev": true,
"license": "BSD-3-Clause",
"dependencies": {
"side-channel": "^1.0.6"
"side-channel": "^1.1.0"
},
"engines": {
"node": ">=0.6"
@ -3694,9 +3705,9 @@
"license": "MIT"
},
"node_modules/semver": {
"version": "7.6.3",
"resolved": "https://registry.npmjs.org/semver/-/semver-7.6.3.tgz",
"integrity": "sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==",
"version": "7.7.1",
"resolved": "https://registry.npmjs.org/semver/-/semver-7.7.1.tgz",
"integrity": "sha512-hlq8tAfn0m/61p4BVRcPzIGr6LKiMwo4VM6dGi6pt4qcRkmNzTcWq6eCEjEh+qXjkMDvPlOFFSGwQjoEa6gyMA==",
"dev": true,
"license": "ISC",
"bin": {
@ -3939,14 +3950,14 @@
}
},
"node_modules/synckit": {
"version": "0.9.2",
"resolved": "https://registry.npmjs.org/synckit/-/synckit-0.9.2.tgz",
"integrity": "sha512-vrozgXDQwYO72vHjUb/HnFbQx1exDjoKzqx23aXEg2a9VIg2TSFZ8FmeZpTjUCFMYw7mpX4BE2SFu8wI7asYsw==",
"version": "0.10.3",
"resolved": "https://registry.npmjs.org/synckit/-/synckit-0.10.3.tgz",
"integrity": "sha512-R1urvuyiTaWfeCggqEvpDJwAlDVdsT9NM+IP//Tk2x7qHCkSvBk/fwFgw/TLAHzZlrAnnazMcRw0ZD8HlYFTEQ==",
"dev": true,
"license": "MIT",
"dependencies": {
"@pkgr/core": "^0.1.0",
"tslib": "^2.6.2"
"@pkgr/core": "^0.2.0",
"tslib": "^2.8.1"
},
"engines": {
"node": "^14.18.0 || >=16.0.0"
@ -3990,22 +4001,22 @@
"license": "MIT"
},
"node_modules/tldts": {
"version": "6.1.77",
"resolved": "https://registry.npmjs.org/tldts/-/tldts-6.1.77.tgz",
"integrity": "sha512-lBpoWgy+kYmuXWQ83+R7LlJCnsd9YW8DGpZSHhrMl4b8Ly/1vzOie3OdtmUJDkKxcgRGOehDu5btKkty+JEe+g==",
"version": "6.1.85",
"resolved": "https://registry.npmjs.org/tldts/-/tldts-6.1.85.tgz",
"integrity": "sha512-gBdZ1RjCSevRPFix/hpaUWeak2/RNUZB4/8frF1r5uYMHjFptkiT0JXIebWvgI/0ZHXvxaUDDJshiA0j6GdL3w==",
"dev": true,
"license": "MIT",
"dependencies": {
"tldts-core": "^6.1.77"
"tldts-core": "^6.1.85"
},
"bin": {
"tldts": "bin/cli.js"
}
},
"node_modules/tldts-core": {
"version": "6.1.77",
"resolved": "https://registry.npmjs.org/tldts-core/-/tldts-core-6.1.77.tgz",
"integrity": "sha512-bCaqm24FPk8OgBkM0u/SrEWJgHnhBWYqeBo6yUmcZJDCHt/IfyWBb+14CXdGi4RInMv4v7eUAin15W0DoA+Ytg==",
"version": "6.1.85",
"resolved": "https://registry.npmjs.org/tldts-core/-/tldts-core-6.1.85.tgz",
"integrity": "sha512-DTjUVvxckL1fIoPSb3KE7ISNtkWSawZdpfxGxwiIrZoO6EbHVDXXUIlIuWympPaeS+BLGyggozX/HTMsRAdsoA==",
"dev": true,
"license": "MIT"
},
@ -4034,9 +4045,9 @@
}
},
"node_modules/tough-cookie": {
"version": "5.1.1",
"resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-5.1.1.tgz",
"integrity": "sha512-Ek7HndSVkp10hmHP9V4qZO1u+pn1RU5sI0Fw+jCU3lyvuMZcgqsNgc6CmJJZyByK4Vm/qotGRJlfgAX8q+4JiA==",
"version": "5.1.2",
"resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-5.1.2.tgz",
"integrity": "sha512-FVDYdxtnj0G6Qm/DhNPSb8Ju59ULcup3tuJxkFb5K8Bv2pUXILbf0xZWU8PX8Ov19OXljbUyveOFwRMwkXzO+A==",
"dev": true,
"license": "BSD-3-Clause",
"dependencies": {

View File

@ -20,15 +20,15 @@
"author": "Hyperswitch",
"license": "ISC",
"devDependencies": {
"@eslint/js": "^9.20.0",
"cypress": "^14.2.0",
"@eslint/js": "^9.23.0",
"cypress": "^14.2.1",
"cypress-mochawesome-reporter": "^3.8.2",
"eslint": "^9.20.1",
"eslint-config-prettier": "^10.0.1",
"eslint-plugin-cypress": "^4.1.0",
"eslint-plugin-prettier": "^5.2.3",
"globals": "^15.15.0",
"eslint": "^9.23.0",
"eslint-config-prettier": "^10.1.1",
"eslint-plugin-cypress": "^4.2.0",
"eslint-plugin-prettier": "^5.2.5",
"globals": "^16.0.0",
"jsqr": "^1.4.0",
"prettier": "^3.5.1"
"prettier": "^3.5.3"
}
}