diff --git a/packages/driver/cypress/integration/commands/task_spec.js b/packages/driver/cypress/integration/commands/task_spec.js index 62c2e4d1498..56c57d21d46 100644 --- a/packages/driver/cypress/integration/commands/task_spec.js +++ b/packages/driver/cypress/integration/commands/task_spec.js @@ -210,7 +210,7 @@ describe('src/cy/commands/task', () => { expect(lastLog.get('error')).to.eq(err) expect(lastLog.get('state')).to.eq('failed') - expect(err.message).to.eq(`\`cy.task('bar')\` failed with the following error:\n\nThe task 'bar' was not handled in the plugins file. The following tasks are registered: return:arg, arg:is:undefined, wait, create:long:file\n\nFix this in your plugins file here:\n${Cypress.config('pluginsFile')}`) + expect(err.message).to.eq(`\`cy.task('bar')\` failed with the following error:\n\nThe task 'bar' was not handled in the plugins file. The following tasks are registered: return:arg, cypress:env, arg:is:undefined, wait, create:long:file\n\nFix this in your plugins file here:\n${Cypress.config('pluginsFile')}`) done() }) diff --git a/packages/driver/cypress/integration/issues/18805_spec.js b/packages/driver/cypress/integration/issues/18805_spec.js new file mode 100644 index 00000000000..d5e88f8574d --- /dev/null +++ b/packages/driver/cypress/integration/issues/18805_spec.js @@ -0,0 +1,5 @@ +describe('CYPRESS env var', () => { + it('checks that the CYPRESS env var exists in the plugin file', () => { + cy.task('cypress:env').should('eq', 'true') + }) +}) diff --git a/packages/driver/cypress/plugins/index.js b/packages/driver/cypress/plugins/index.js index 0aa63efb502..57b70ee98a0 100644 --- a/packages/driver/cypress/plugins/index.js +++ b/packages/driver/cypress/plugins/index.js @@ -38,6 +38,9 @@ module.exports = (on) => { 'return:arg' (arg) { return arg }, + 'cypress:env' () { + return process.env['CYPRESS'] + }, 'arg:is:undefined' (arg) { if (arg === undefined) { return 'arg was undefined' diff --git a/packages/server/lib/environment.js b/packages/server/lib/environment.js index e225a4292f8..09e21d3c9c0 100644 --- a/packages/server/lib/environment.js +++ b/packages/server/lib/environment.js @@ -25,6 +25,8 @@ const pkg = require('@packages/root') // or development as default const env = process.env['CYPRESS_INTERNAL_ENV'] || (process.env['CYPRESS_INTERNAL_ENV'] = pkg.env != null ? pkg.env : 'development') +process.env['CYPRESS'] = 'true' + const config = { // uses cancellation for automation timeouts cancellation: true, diff --git a/packages/server/test/unit/environment_spec.js b/packages/server/test/unit/environment_spec.js index 21c40beaefb..e130b9b7ebd 100644 --- a/packages/server/test/unit/environment_spec.js +++ b/packages/server/test/unit/environment_spec.js @@ -134,4 +134,10 @@ describe('lib/environment', () => { return expectedEnv('development') }) }) + + context('it sets process.env.CYPRESS', () => { + it('sets CYPRESS=true when Cypress runs', () => { + expect(process.env['CYPRESS']).to.eq('true') + }) + }) })