mirror of
https://github.com/juspay/hyperswitch.git
synced 2025-10-26 10:53:49 +08:00
Co-authored-by: sundarigopal <sundarigopalakrishnan2406@gmail.com> Co-authored-by: hyperswitch-bot[bot] <148525504+hyperswitch-bot[bot]@users.noreply.github.com>
90 lines
2.9 KiB
JavaScript
90 lines
2.9 KiB
JavaScript
import { defineConfig } from "cypress";
|
|
import mochawesome from "cypress-mochawesome-reporter/plugin.js";
|
|
import fs from "fs";
|
|
import { getTimeoutMultiplier } from "./cypress/utils/RequestBodyUtils.js";
|
|
|
|
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`;
|
|
|
|
// Get timeout multiplier from shared utility
|
|
const timeoutMultiplier = getTimeoutMultiplier();
|
|
|
|
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: Math.round(30000 * timeoutMultiplier),
|
|
pageLoadTimeout: Math.round(90000 * timeoutMultiplier), // 90s local, 135s (2.25min) CI
|
|
responseTimeout: Math.round(60000 * timeoutMultiplier),
|
|
requestTimeout: Math.round(45000 * timeoutMultiplier),
|
|
taskTimeout: Math.round(120000 * timeoutMultiplier),
|
|
screenshotsFolder: screenshotsFolderName,
|
|
video: true,
|
|
videoCompression: 32,
|
|
videosFolder: `cypress/videos/${connectorId}`,
|
|
chromeWebSecurity: false,
|
|
},
|
|
});
|