Comment on page
Environment Variables
How to include environment variables in your Asserted test at runtime
It's likely that at some point you'll need to include some sensitive information like test tokens or usernames in your Asserted tests. Follow the instructions below to do so securely without saving these values directly in your git repo.
Included in the fixed dependencies is dotenv and getenv. These are simple libraries that are commonly used to pull in secrets or configuration from environment variables.
getenv
reads the variables out of process.env and throws if they are missing rather than defaulting to an empty variable
If you plan on publishing to NPM it is extremely important that you exclude your
.asserted
directory if you have included a .env file in it.Use the "files" property of your root package.json to include only the files and folders you want when publishing to NPM.
To access environment variables at runtime in Asserted, while still not checking them into your repo, do the following:
- 1.Create a
.env
file containing the variables within the.asserted/
directory of your project - 2.Ensure that the
.gitignore
file inside the.asserted/
directory includes a reference to the.env
file you just added (it should by default) - 3.Add an entry to the
package.json
in your.asserted/
directory for"files": [ "**/*.js", ".env" ]
, this will include the.env
file in your package when you runasrtd push
- 4.If your root package is going to be published to NPM, exclude
.asserted
from being published
After doing the above, when you run
asrtd push
, you should see the .env
file listed in the files includes in the routine package, while still omitting the file from your git repo.Populate
process.env
from the variables stored in the .env
file using the following:const path = require('path');
require('dotenv').config({ path: path.join(__dirname, './.env') });
It's best to use
getenv
to read whatever environment variables you're interested in, but you can just read directly from process.env
if you prefer.const getenv = require('getenv');
// Throws if process.env.TOKEN does not exist
const TOKEN = getenv('TOKEN');
// Works, but just silently defaults to undefined or an empty string if
// the environment variable is not properly set
const TOKEN = process.env.TOKEN;
Last modified 3yr ago