const fs = require('fs') const path = require('path') const ABORT_FLAG_PATH = path.join(__dirname, '..', '.abort-run') module.exports = (on, config) => { on('before:browser:launch', (browser, launchOptions) => { if (browser.name === 'chrome') { launchOptions.args.push('--disable-gpu') launchOptions.args.push('--no-sandbox') launchOptions.args.push('--disable-dev-shm-usage') } return launchOptions }) // If a TARGET_ENV env var was passed, override baseUrl and apiBaseUrl if (config.env.TARGET_ENV === 'remote') { config.baseUrl = config.env.REMOTE_BASE_URL config.env.apiBaseUrl = config.env.REMOTE_API_URL } // Task to set abort flag on('task', { setAbortFlag() { fs.writeFileSync(ABORT_FLAG_PATH, 'ABORTED') return null }, checkAbortFlag() { return fs.existsSync(ABORT_FLAG_PATH) }, clearAbortFlag() { if (fs.existsSync(ABORT_FLAG_PATH)) { fs.unlinkSync(ABORT_FLAG_PATH) } return null } }) // Clean up abort flag at start of run if (fs.existsSync(ABORT_FLAG_PATH)) { fs.unlinkSync(ABORT_FLAG_PATH) } return config }