spiff-arena/spiffworkflow-frontend/cypress.config.js

61 lines
1.8 KiB
JavaScript
Raw Normal View History

/* eslint-disable */
const { defineConfig } = require("cypress");
const { rm } = require("fs/promises");
// yes use video compression in CI, where we will set the env var so we upload to cypress dashboard
const useVideoCompression = !!process.env.CYPRESS_RECORD_KEY;
// https://github.com/cypress-io/cypress/issues/2522
const deleteVideosOnSuccess = (on) => {
const filesToDelete = [];
on("after:spec", (_spec, results) => {
if (results.stats.failures === 0 && results.video) {
filesToDelete.push(results.video);
}
});
on("after:run", async () => {
if (filesToDelete.length) {
console.log(
"after:run hook: Deleting %d video(s) from successful specs",
filesToDelete.length
);
await Promise.all(filesToDelete.map((videoFile) => rm(videoFile)));
}
});
};
let spiffWorkflowFrontendUrl = `http://localhost:${
process.env.SPIFFWORKFLOW_FRONTEND_PORT || 7001
}`;
2023-03-05 04:48:23 +00:00
if (process.env.SPIFFWORKFLOW_FRONTEND_URL) {
spiffWorkflowFrontendUrl = process.env.SPIFFWORKFLOW_FRONTEND_URL;
2023-03-05 04:48:23 +00:00
}
2023-01-09 21:00:02 +00:00
const cypressConfig = {
projectId: "crax1q",
2023-04-13 16:38:55 +00:00
defaultCommandTimeout: 20000,
videoUploadOnPasses: false,
chromeWebSecurity: false,
e2e: {
2023-03-05 04:48:23 +00:00
baseUrl: spiffWorkflowFrontendUrl,
setupNodeEvents(on, config) {
deleteVideosOnSuccess(on);
require("@cypress/grep/src/plugin")(config);
2022-11-16 03:34:28 +00:00
return config;
},
},
// this scrolls away from the elements for some reason with carbon when set to top
// https://github.com/cypress-io/cypress/issues/2353
// https://docs.cypress.io/guides/core-concepts/interacting-with-elements#Scrolling
scrollBehavior: "center",
};
2023-01-09 21:00:02 +00:00
if (!process.env.CYPRESS_RECORD_KEY) {
// since it's slow
cypressConfig.videoCompression = false;
2023-01-09 21:00:02 +00:00
}
module.exports = defineConfig(cypressConfig)