mirror of
https://github.com/vuejs/vue-cli.git
synced 2026-01-18 13:20:17 -06:00
test: fix NODE_ENV for tests
This commit is contained in:
@@ -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')
|
||||
})
|
||||
|
||||
@@ -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
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user