53 lines
1.5 KiB
JavaScript
53 lines
1.5 KiB
JavaScript
/* 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)))
|
|
}
|
|
})
|
|
}
|
|
|
|
const cypressConfig = {
|
|
projectId: 'crax1q',
|
|
|
|
videoUploadOnPasses: false,
|
|
chromeWebSecurity: false,
|
|
e2e: {
|
|
baseUrl: 'http://localhost:7001',
|
|
setupNodeEvents(on, config) {
|
|
deleteVideosOnSuccess(on)
|
|
require('@cypress/grep/src/plugin')(config);
|
|
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",
|
|
}
|
|
|
|
if (!process.env.CYPRESS_RECORD_KEY) {
|
|
// since it's slow
|
|
cypressConfig.videoCompression = false
|
|
}
|
|
|
|
module.exports = defineConfig(cypressConfig)
|