serverless/test/unit/lib/cli/conditionally-load-dotenv.test.js
Mariusz Nowak d62c3288b2 feat: Unconditionally fallback when local installation found
BREAKING CHANGE:
`enableLocalInstallationFallback` configuration property is no longer supported.
2022-01-27 15:21:58 +01:00

44 lines
1.5 KiB
JavaScript

'use strict';
const chai = require('chai');
const path = require('path');
const overrideEnv = require('process-utils/override-env');
const fsp = require('fs').promises;
const conditionallyLoadDotenv = require('../../../../lib/cli/conditionally-load-dotenv');
chai.use(require('chai-as-promised'));
const expect = require('chai').expect;
describe('test/unit/lib/cli/conditionally-load-dotenv.test.js', () => {
let restoreEnv;
before(async () => {
const defaultFileContent = 'DEFAULT_ENV_VARIABLE=valuefromdefault';
await fsp.writeFile(path.resolve('.env'), defaultFileContent);
const stage = 'testing';
const stageFileContent = 'STAGE_ENV_VARIABLE=valuefromstage';
await fsp.writeFile(path.resolve(`.env.${stage}`), stageFileContent);
});
beforeEach(() => {
({ restoreEnv } = overrideEnv());
});
afterEach(() => {
restoreEnv && restoreEnv();
});
it('should load environment variables from default .env file if no matching stage', async () => {
await conditionallyLoadDotenv({}, { useDotenv: true });
expect(process.env.DEFAULT_ENV_VARIABLE).to.equal('valuefromdefault');
expect(process.env.STAGE_ENV_VARIABLE).to.be.undefined;
});
it('should load environment variables from stage .env file if matching stage', async () => {
await conditionallyLoadDotenv({ stage: 'testing' }, { useDotenv: true });
expect(process.env.DEFAULT_ENV_VARIABLE).to.be.undefined;
expect(process.env.STAGE_ENV_VARIABLE).to.equal('valuefromstage');
});
});