@@ -90,6 +90,10 @@ lab.experiment('config', function () {
9090
9191 function ( ) {
9292 process . env . DB_MIGRATE_TEST_VAR = 'username_from_env' ;
93+ process . env . EMPTY_VAR = '' ;
94+ if ( typeof process . env . NOT_SET !== 'undefined' ) {
95+ delete process . env . NOT_SET ;
96+ }
9397 var configPath = path . join ( __dirname , 'database_with_env.json' ) ;
9498 var _config = config . load ( configPath , 'prod' ) ;
9599
@@ -98,6 +102,16 @@ lab.experiment('config', function () {
98102 Code . expect ( _config . prod . username ) . to . equal ( 'username_from_env' ) ;
99103 }
100104 ) ;
105+ lab . test (
106+ 'should load default value from not set env var' , ( ) => {
107+ Code . expect ( _config . prod . password ) . to . equal ( 'my-password' ) ;
108+ }
109+ ) ;
110+ lab . test (
111+ 'should use value from env var even when empty, rather than default' , ( ) => {
112+ Code . expect ( _config . prod . host ) . to . equal ( '' ) ;
113+ }
114+ ) ;
101115 }
102116 ) ;
103117
@@ -122,6 +136,29 @@ lab.experiment('config', function () {
122136 }
123137 ) ;
124138
139+ lab . experiment (
140+ 'loading from a file from default when ENV URL is not set' ,
141+
142+ function ( ) {
143+ if ( typeof process . env . DB_MIGRATE_TEST_VAR !== "undefined" ) {
144+ delete process . env . DB_MIGRATE_TEST_VAR ;
145+ }
146+ var configPath = path . join ( __dirname , 'database_with_env_url.json' ) ;
147+ var _config = config . load ( configPath , 'prod' ) ;
148+
149+ lab . test (
150+ 'should load the url from default when env var not set' , ( ) => {
151+ var current = _config . getCurrent ( ) ;
152+ Code . expect ( current . settings . driver ) . to . equal ( 'postgres' ) ;
153+ Code . expect ( current . settings . user ) . to . equal ( 'uname' ) ;
154+ Code . expect ( current . settings . password ) . to . equal ( 'pw' ) ;
155+ Code . expect ( current . settings . host ) . to . equal ( 'server.com' ) ;
156+ Code . expect ( current . settings . database ) . to . equal ( 'dbname' ) ;
157+ }
158+ ) ;
159+ }
160+ ) ;
161+
125162 lab . experiment ( 'loading from an URL' , function ( ) {
126163 var databaseUrl = 'postgres://uname:pw@server.com/dbname' ;
127164 var _config = config . loadUrl ( databaseUrl , 'dev' ) ;
0 commit comments