1.0.0 • Published 5 years ago

cypress-env-plugin v1.0.0

Weekly downloads
2
License
MIT
Repository
github
Last release
5 years ago

Cypress Env Plugin

An unofficial plugin for loading your environment into your Cypress environment, such as dotenv.

Installation

npm

npm i -D cypress-env-plugin

yarn

yarn add -D cypress-env-plugin

Usage

In your cypress/plugins/index.js file:

Basic example

const { createEnvPlugin } = require('cypress-env-plugin');
/**
 * With no prefix a .env of:
 * SECRET_KEY=SECRET_KEY
 * CYPRESS_API_URL=https://api.cool.com/api/
 *
 * Will expose to Cypress Env:
 * API_URL=https://api.cool.com/api/
 */
// Initialise the plugin
const envPlugin = createEnvPlugin({
  env: require('dotenv').config(),
});

module.exports = (on, config) => {
  // Add the plugin
  envPlugin(config);
  return config;
};

Remove prefix restriction example

By default, we filter out any environment variables unless they're prefixed with CYPRESS_, if you want to load everything from your .env you can pass null to the prefix property,

const { createEnvPlugin } = require('cypress-env-plugin');
/**
 * With a null prefix a .env of:
 * SECRET_KEY=SECRET_KEY
 * CYPRESS_API_URL=https://api.cool.com/api/
 *
 * Will expose to Cypress Env:
 * SECRET_KEY=SECRET_KEY
 * CYPRESS_API_URL=https://api.cool.com/api/
 */
// Initialise the plugin
const envPlugin = createEnvPlugin({
  env: require('dotenv').config(),
});

module.exports = (on, config) => {
  // Add the plugin
  envPlugin(config);
  return config;
};

Custom prefix example

You can also provide your own prefix:

const withCustomPrefix = createEnvPlugin({
  prefix: 'WHATEVER_',
  env: require('dotenv').config(),
});

Plain object example

I'm not sure why, but you can also pass a plain object for your environment. process.env maybe?

const withCustomPrefix = createEnvPlugin({
  prefix: 'WHATEVER_',
  env: {
    WHATEVER_API_KEY: '123578123718923',
  },
});

Contributing

Local Development

Below is a list of commands you will probably find useful.

npm start or yarn start

Runs the project in development/watch mode. Your project will be rebuilt upon changes.

npm run build or yarn build

Bundles the package to the dist folder. The package is optimized and bundled with Rollup into multiple formats (CommonJS, UMD, and ES Module).

npm test or yarn test

Runs the test watcher (Jest) in an interactive mode. By default, runs tests related to files changed since the last commit.