mirror of
https://github.com/serverless/serverless.git
synced 2026-01-18 14:58:43 +00:00
44 lines
1.5 KiB
JavaScript
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')
|
|
})
|
|
})
|