Files
hyperswitch/cypress-tests/cypress.config.js
Gnanasundari24 74995446d0 ci(cypress): Making a mandate payment with large customer user agents (#8790)
Co-authored-by: sundarigopal <sundarigopalakrishnan2406@gmail.com>
2025-07-30 09:53:21 +00:00

85 lines
2.5 KiB
JavaScript

import { defineConfig } from "cypress";
import mochawesome from "cypress-mochawesome-reporter/plugin.js";
import fs from "fs";
let globalState;
// Fetch from environment variable
const connectorId = process.env.CYPRESS_CONNECTOR || "service";
const screenshotsFolderName = `screenshots/${connectorId}`;
const reportName = process.env.REPORT_NAME || `${connectorId}_report`;
export default defineConfig({
e2e: {
setupNodeEvents(on, config) {
mochawesome(on);
on("task", {
setGlobalState: (val) => {
return (globalState = val || {});
},
getGlobalState: () => {
return globalState || {};
},
cli_log: (message) => {
// eslint-disable-next-line no-console
console.log("Logging console message from task");
// eslint-disable-next-line no-console
console.log(message);
return null;
},
});
on("after:spec", (spec, results) => {
// Clean up resources after each spec
if (
results &&
results.video &&
!results.tests.some((test) =>
test.attempts.some((attempt) => attempt.state === "failed")
)
) {
// Only try to delete if the video file exists
try {
if (fs.existsSync(results.video)) {
fs.unlinkSync(results.video);
}
} catch (error) {
// Log the error but don't fail the test
// eslint-disable-next-line no-console
console.warn(
`Warning: Could not delete video file: ${results.video}`
);
// eslint-disable-next-line no-console
console.warn(error);
}
}
});
return config;
},
experimentalRunAllSpecs: true,
specPattern: "cypress/e2e/**/*.cy.{js,jsx,ts,tsx}",
supportFile: "cypress/support/e2e.js",
reporter: "cypress-mochawesome-reporter",
reporterOptions: {
reportDir: `cypress/reports/${connectorId}`,
reportFilename: reportName,
reportPageTitle: `[${connectorId}] Cypress test report`,
embeddedScreenshots: true,
overwrite: false,
inlineAssets: true,
saveJson: true,
},
defaultCommandTimeout: 15000,
pageLoadTimeout: 50000,
responseTimeout: 45000,
requestTimeout: 30000,
screenshotsFolder: screenshotsFolderName,
video: true,
videoCompression: 32,
videosFolder: `cypress/videos/${connectorId}`,
chromeWebSecurity: false,
},
});