diff options
Diffstat (limited to 'cypress.config.ts')
-rw-r--r-- | cypress.config.ts | 89 |
1 files changed, 89 insertions, 0 deletions
diff --git a/cypress.config.ts b/cypress.config.ts new file mode 100644 index 00000000..cd41fb26 --- /dev/null +++ b/cypress.config.ts @@ -0,0 +1,89 @@ + +import { + configureNextcloud, + startNextcloud, + stopNextcloud, + waitOnNextcloud, +} from './cypress/dockerNode' +import { defineConfig } from 'cypress' + +import browserify from '@cypress/browserify-preprocessor' +import getCompareSnapshotsPlugin from 'cypress-visual-regression/dist/plugin' + +export default defineConfig({ + projectId: '7mqhfh', + + // 16/9 screen ratio + viewportWidth: 1280, + viewportHeight: 720, + + // Tries again 2 more times on failure + retries: { + runMode: 2, + // do not retry in `cypress open` + openMode: 0, + }, + + // Needed to trigger `after:run` events with cypress open + experimentalInteractiveRunEvents: true, + + // faster video processing + videoCompression: false, + + // Visual regression testing + env: { + failSilently: false, + type: 'actual', + }, + screenshotsFolder: 'cypress/snapshots/actual', + trashAssetsBeforeRuns: true, + + e2e: { + testIsolation: false, + + // We've imported your old cypress plugins here. + // You may want to clean this up later by importing these. + async setupNodeEvents(on, config) { + // Fix browserslist extend https://github.com/cypress-io/cypress/issues/2983#issuecomment-570616682 + on('file:preprocessor', browserify({ typescript: require.resolve('typescript') })) + getCompareSnapshotsPlugin(on, config) + + // Disable spell checking to prevent rendering differences + on('before:browser:launch', (browser, launchOptions) => { + if (browser.family === 'chromium' && browser.name !== 'electron') { + launchOptions.preferences.default['browser.enable_spellchecking'] = false + return launchOptions + } + + if (browser.family === 'firefox') { + launchOptions.preferences['layout.spellcheckDefault'] = 0 + return launchOptions + } + + if (browser.name === 'electron') { + launchOptions.preferences.spellcheck = false + return launchOptions + } + }) + + // Remove container after run + on('after:run', () => { + stopNextcloud() + }) + + // Before the browser launches + // starting Nextcloud testing container + return startNextcloud(process.env.BRANCH) + .then((ip) => { + // Setting container's IP as base Url + config.baseUrl = `http://${ip}/index.php` + return ip + }) + .then(waitOnNextcloud) + .then(() => configureNextcloud(process.env.BRANCH)) + .then(() => { + return config + }) + }, + }, +}) |