test: fix NODE_ENV for tests

This commit is contained in:
Evan You
2018-06-10 14:42:04 -04:00
parent 292c35fed3
commit 55e2c3eeea
2 changed files with 23 additions and 16 deletions

View File

@@ -23,6 +23,11 @@ const createMockService = (plugins = [], init = true, mode) => {
beforeEach(() => {
mockPkg({})
delete process.env.NODE_ENV
delete process.env.BABEL_ENV
delete process.env.FOO
delete process.env.BAR
delete process.env.BAZ
})
test('env loading', () => {
@@ -35,17 +40,12 @@ test('env loading', () => {
expect(process.env.BAR).toBe('2')
expect(process.env.BAZ).toBe('4')
delete process.env.FOO
delete process.env.BAR
delete process.env.BAZ
fs.unlinkSync('/.env.local')
fs.unlinkSync('/.env')
})
test('env loading for custom mode', () => {
const prevNodeEnv = process.env.NODE_ENV
delete process.env.NODE_ENV
process.env.VUE_CLI_TEST_TESTING_ENV = true
fs.writeFileSync('/.env', 'FOO=1')
fs.writeFileSync('/.env.staging', 'FOO=2\nNODE_ENV=production')
createMockService([], true, 'staging')
@@ -53,8 +53,7 @@ test('env loading for custom mode', () => {
expect(process.env.FOO).toBe('2')
expect(process.env.NODE_ENV).toBe('production')
delete process.env.FOO
process.env.NODE_ENV = prevNodeEnv
process.env.VUE_CLI_TEST_TESTING_ENV = false
fs.unlinkSync('/.env')
fs.unlinkSync('/.env.staging')
})

View File

@@ -103,14 +103,22 @@ module.exports = class Service {
// by default, NODE_ENV and BABEL_ENV are set to "development" unless mode
// is production or test. However the value in .env files will take higher
// priority.
const defaultNodeEnv = (mode === 'production' || mode === 'test')
? mode
: 'development'
if (process.env.NODE_ENV == null) {
process.env.NODE_ENV = defaultNodeEnv
}
if (process.env.BABEL_ENV == null) {
process.env.BABEL_ENV = defaultNodeEnv
if (mode) {
// always set NODE_ENV during tests
// as that is necessary for tests to not be affected by each other
const shouldForceDefaultEnv = (
process.env.VUE_CLI_TEST &&
!process.env.VUE_CLI_TEST_TESTING_ENV
)
const defaultNodeEnv = (mode === 'production' || mode === 'test')
? mode
: 'development'
if (shouldForceDefaultEnv || process.env.NODE_ENV == null) {
process.env.NODE_ENV = defaultNodeEnv
}
if (shouldForceDefaultEnv || process.env.BABEL_ENV == null) {
process.env.BABEL_ENV = defaultNodeEnv
}
}
}