Skip to content

Instantly share code, notes, and snippets.

@prodrammer
Last active April 7, 2021 18:41
Show Gist options
  • Star 5 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save prodrammer/c586a080fa2a90c12328b762ba8266c5 to your computer and use it in GitHub Desktop.
Save prodrammer/c586a080fa2a90c12328b762ba8266c5 to your computer and use it in GitHub Desktop.
Configure cypress.io using dotenv-extended, and getenv
// ***********************************************************
// https://on.cypress.io/plugins-guide
// ***********************************************************
const dotenv = require('dotenv-extended')
const getenv = require('getenv')
dotenv.load()
const overrideBaseUrl = () => {
let baseUrl = getenv.string('CYPRESS_BASE_URL', '')
if (!baseUrl) {
const scheme = getenv.bool('DEV_HTTPS') ? 'https://' : 'http://'
const host = getenv.string('DEV_HOST')
const port = getenv.string('DEV_PORT')
baseUrl = `${scheme}${host}:${port}`
}
return baseUrl
}
// This function is called when a project is opened or re-opened (e.g. due to
// the project's config changing)
module.exports = (on, config) => {
config.baseUrl = overrideBaseUrl()
return config
}
@brian-mann
Copy link

You might need to return config... I'm not sure what we do if return undefined. You're mutating config so it may just work, but ideally you make it clear that config is the return value.

@prodrammer
Copy link
Author

prodrammer commented Jun 14, 2018

Sorry, I just realized this in the docs (you MUST return config if you want modifications to be included)...realized you commented here as well. You are correct! Updated!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment