Files
hyperswitch/cypress-tests/cypress/utils/RequestBodyUtils.js
Pa1NarK e677b1389f ci(cypress): verify if card fields are populated on updating card info (#7743)
Co-authored-by: likhinbopanna <131246334+likhinbopanna@users.noreply.github.com>
2025-04-11 07:22:04 +00:00

244 lines
4.2 KiB
JavaScript

const keyPrefixes = {
localhost: {
publishable_key: "pk_dev_",
key_id: "dev_",
},
integ: {
publishable_key: "pk_snd_",
key_id: "snd_",
},
sandbox: {
publishable_key: "pk_snd_",
key_id: "snd_",
},
};
export const setClientSecret = (requestBody, clientSecret) => {
requestBody["client_secret"] = clientSecret;
};
export const setCardNo = (requestBody, cardNo) => {
// pass confirm body here to set CardNo
requestBody["payment_method_data"]["card"]["card_number"] = cardNo;
};
export const setApiKey = (requestBody, apiKey) => {
requestBody["connector_account_details"]["api_key"] = apiKey;
};
export const generateRandomString = (prefix = "cyMerchant") => {
const uuidPart = "xxxxxxxx";
const randomString = uuidPart.replace(/[xy]/g, function (c) {
const r = (Math.random() * 16) | 0;
const v = c === "x" ? r : (r & 0x3) | 0x8;
return v.toString(16);
});
return `${prefix}_${randomString}`;
};
export const setMerchantId = (merchantCreateBody, merchantId) => {
merchantCreateBody["merchant_id"] = merchantId;
};
export function isoTimeTomorrow() {
const now = new Date();
// Create a new date object for tomorrow
const tomorrow = new Date(now);
tomorrow.setDate(now.getDate() + 1);
// Convert to ISO string format
const isoStringTomorrow = tomorrow.toISOString();
return isoStringTomorrow;
}
export function validateEnv(baseUrl, keyIdType) {
if (!baseUrl) {
throw new Error("Please provide a baseUrl");
}
const environment = Object.keys(keyPrefixes).find((env) =>
baseUrl.includes(env)
);
if (!environment) {
throw new Error("Unsupported baseUrl");
}
const prefix = keyPrefixes[environment][keyIdType];
if (!prefix) {
throw new Error(`Unsupported keyIdType: ${keyIdType}`);
}
return prefix;
}
/**
* Generates a random-ish card holder name from predefined lists.
* @returns {string} A randomly generated full name (e.g., "Jane Smith").
*/
export function generateRandomName() {
const firstNames = [
"Alex",
"Jamie",
"Taylor",
"Morgan",
"Casey",
"Jordan",
"Pat",
"Sam",
"Chris",
"Dana",
"Olivia",
"Liam",
"Emma",
"Noah",
"Ava",
"William",
"Sophia",
"James",
"Isabella",
"Oliver",
"Charlotte",
"Benjamin",
"Amelia",
"Elijah",
"Mia",
"Lucas",
"Harper",
"Mason",
"Evelyn",
"Logan",
"Abigail",
"Alexander",
"Emily",
"Ethan",
"Elizabeth",
"Jacob",
"Mila",
"Michael",
"Ella",
"Daniel",
"Avery",
"Henry",
"Sofia",
"Jackson",
"Camila",
"Sebastian",
"Aria",
"Aiden",
"Scarlett",
"Matthew",
"Victoria",
"Samuel",
"Madison",
"David",
"Luna",
"Joseph",
"Grace",
"Carter",
"Chloe",
"Owen",
"Penelope",
"Wyatt",
"Layla",
"John",
"Riley",
"Jack",
"Zoey",
"Luke",
"Nora",
"Jayden",
"Lily",
];
const lastNames = [
"Smith",
"Jones",
"Williams",
"Brown",
"Davis",
"Miller",
"Wilson",
"Moore",
"Taylor",
"Lee",
"Dylan",
"Eleanor",
"Grayson",
"Hannah",
"Levi",
"Lillian",
"Isaac",
"Addison",
"Gabriel",
"Aubrey",
"Julian",
"Ellie",
"Mateo",
"Stella",
"Anthony",
"Natalie",
"Jaxon",
"Zoe",
"Lincoln",
"Leah",
"Joshua",
"Hazel",
"Christopher",
"Violet",
"Andrew",
"Aurora",
"Theodore",
"Savannah",
"Caleb",
"Audrey",
"Ryan",
"Brooklyn",
"Asher",
"Bella",
"Nathan",
"Claire",
"Thomas",
"Skylar",
"Leo",
"Lucy",
"Isaiah",
"Paisley",
"Charles",
"Everly",
"Josiah",
"Anna",
"Hudson",
"Caroline",
"Christian",
"Nova",
"Hunter",
"Genesis",
"Connor",
"Emilia",
"Eli",
"Kennedy",
"Ezra",
"Samantha",
"Aaron",
"Maya",
"Landon",
"Willow",
"Adrian",
"Kinsley",
"Jonathan",
"Naomi",
"Nolan",
"Aaliyah",
];
const randomFirstName =
firstNames[Math.floor(Math.random() * firstNames.length)];
const randomLastName =
lastNames[Math.floor(Math.random() * lastNames.length)];
return `${randomFirstName} ${randomLastName}`;
}