From 68b8c84c989f507d1850ba81c3b4219e908598d6 Mon Sep 17 00:00:00 2001
From: Rudolf Copi Eckelberg <rce16@inf.ufpr.br>
Date: Tue, 4 Oct 2016 10:52:55 -0300
Subject: [PATCH] Added test_config.json

---
 .gitignore         |  1 +
 gulpfile.babel.js  |  2 ++
 src/libs/app.js    |  2 +-
 src/libs/config.js | 18 +++++++++++++++++-
 src/test/test.js   |  2 ++
 5 files changed, 23 insertions(+), 2 deletions(-)

diff --git a/.gitignore b/.gitignore
index 979717eb..136ccb71 100644
--- a/.gitignore
+++ b/.gitignore
@@ -20,3 +20,4 @@ build/*
 
 config.json
 docs/
+test_config.json
diff --git a/gulpfile.babel.js b/gulpfile.babel.js
index 1f23dd9e..3a61dace 100644
--- a/gulpfile.babel.js
+++ b/gulpfile.babel.js
@@ -48,6 +48,8 @@ gulp.task('compile', () => {
     // copy configuration file to build directory
     gulp.src('config.json')
         .pipe(gulp.dest('build'));
+    gulp.src('test_config.json')
+        .pipe(gulp.dest('build'));
 });
 
 gulp.task('build', ['compile']);
diff --git a/src/libs/app.js b/src/libs/app.js
index 4e3e51c6..bed5deb7 100644
--- a/src/libs/app.js
+++ b/src/libs/app.js
@@ -10,6 +10,7 @@ const libs = `${process.cwd()}/libs`;
 
 const log = require(`${libs}/log`)(module);
 
+process.env.NODE_ENV = process.env.NODE_ENV || 'development';
 const config = require(`${libs}/config`);
 const cache = require('apicache').options({ debug: config.get('debug') }).middleware;
 
@@ -22,7 +23,6 @@ const mongoose = require(`${libs}/db/mongoose`);
 const db = mongoose();
 
 // Set default node environment
-process.env.NODE_ENV = process.env.NODE_ENV || 'development';
 
 // Parse json received in requests
 app.use(bodyParser.json());
diff --git a/src/libs/config.js b/src/libs/config.js
index 5aea5a9c..dd2d88c4 100644
--- a/src/libs/config.js
+++ b/src/libs/config.js
@@ -1,8 +1,24 @@
 const nconf = require('nconf');
 
+let config_file;
+
+switch(process.env.NODE_ENV) {
+    case 'development':
+        config_file = 'config.json';
+        break;
+    case 'test':
+        config_file = 'test_config.json';
+        break;
+    case 'production':
+        config_file = 'config.json';
+        break;
+}
+
 // Exports the config.json as an object with get functions
 nconf.argv()
     .env()
-    .file({ file: `${process.cwd()}/config.json` });
+    .file({ file: `${process.cwd()}/${config_file}` });
+
+console.log(nconf.get('mongodb'));
 
 module.exports = nconf;
diff --git a/src/test/test.js b/src/test/test.js
index 7501e567..90103f0a 100644
--- a/src/test/test.js
+++ b/src/test/test.js
@@ -1,3 +1,5 @@
+process.env.NODE_ENV = 'test';
+
 const chai = require('chai');
 
 const dirtyChai = require('dirty-chai');
-- 
GitLab