From a061894e4374763330e28379f011435294909a60 Mon Sep 17 00:00:00 2001
From: Vytor Calixto <vytorcalixto@gmail.com>
Date: Thu, 29 Sep 2016 09:59:29 -0300
Subject: [PATCH 01/11] Fixed gulp test rule: chdir to build to test

Related: simcaq/SCRUM#68
---
 gulpfile.babel.js | 43 ++++++++++++++++++++++---------------------
 src/test/test.js  |  4 +++-
 2 files changed, 25 insertions(+), 22 deletions(-)

diff --git a/gulpfile.babel.js b/gulpfile.babel.js
index 986652cc..beb0e25f 100644
--- a/gulpfile.babel.js
+++ b/gulpfile.babel.js
@@ -29,25 +29,25 @@ function createLogDir() {
 }
 
 /**
- * Compile source files
- */
+* Compile source files
+*/
 gulp.task('compile', () => {
     createLogDir();
     // run ESLint
     gulp.src('src/**/*.js')
-        .pipe(eslint())
-        .pipe(eslint.format());
+    .pipe(eslint())
+    .pipe(eslint.format());
 
     // compile source to ES5
     gulp.src('src/**/*.js')
-        .pipe(cache.filter())       // cache source files
-        .pipe(babel())      // compile only modified files
-        .pipe(cache.cache())        // cache compiled files
-        .pipe(gulp.dest('build'));  // move compiled files to build directory
+    .pipe(cache.filter())       // cache source files
+    .pipe(babel())      // compile only modified files
+    .pipe(cache.cache())        // cache compiled files
+    .pipe(gulp.dest('build'));  // move compiled files to build directory
 
     // copy configuration file to build directory
     gulp.src('config.json')
-        .pipe(gulp.dest('build'));
+    .pipe(gulp.dest('build'));
 });
 
 gulp.task('build', ['compile']);
@@ -55,17 +55,18 @@ gulp.task('build', ['compile']);
 gulp.task('doc', (cb) => {
     let config = require('./jsdoc.json');
     gulp.src(['README.md', './src/**/*.js'], {read: false})
-        .pipe(jsdoc(config, cb));
+    .pipe(jsdoc(config, cb));
 });
 
 gulp.task('test', ['build'], () => {
-  gulp.src('test/test.js', {read: false})
+    process.chdir('build');
+    gulp.src('test/test.js', {read: false})
     .pipe(mocha())
     .once('error', () => {
-      process.exit(1);
+        process.exit(1);
     })
     .once('end', () => {
-      process.exit();
+        process.exit();
     });
 });
 
@@ -79,14 +80,14 @@ gulp.task('watch', ['compile'], () => {
 });
 
 gulp.task('run', () => {
-  process.chdir('build');
-  nodemon({
-    script: 'server.js',
-    tasks: ['watch'],
-    ignore: ["test/test.js", "gulpfile.babel.js"],
-    ext: 'js html json',
-    env: { 'NODE_ENV': 'development' }
-  });
+    process.chdir('build');
+    nodemon({
+        script: 'server.js',
+        tasks: ['watch'],
+        ignore: ["test/test.js", "gulpfile.babel.js"],
+        ext: 'js html json',
+        env: { 'NODE_ENV': 'development' }
+    });
 });
 
 gulp.task('default', ['run']);
diff --git a/src/test/test.js b/src/test/test.js
index e6bdd1fd..f06f837e 100644
--- a/src/test/test.js
+++ b/src/test/test.js
@@ -12,7 +12,9 @@ const expect = chai.expect;
 
 const should = chai.should(); // actually call the function
 
-const server = require('../libs/app');
+const libs = `${process.cwd()}/libs`;
+
+const server = require(`${libs}/app`);
 
 chai.use(chaiHttp);
 
-- 
GitLab


From e6e1d06911749db969a8871fcd55cccc201278ad Mon Sep 17 00:00:00 2001
From: Vytor Calixto <vytorcalixto@gmail.com>
Date: Thu, 29 Sep 2016 10:16:42 -0300
Subject: [PATCH 02/11] Fixed error in gulp task test

Closes: simcaq/SCRUM#68
---
 .gitlab-ci.yml    | 1 +
 gulpfile.babel.js | 2 +-
 2 files changed, 2 insertions(+), 1 deletion(-)

diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index b3949c4f..f76c7b37 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -8,6 +8,7 @@ before_script:
 run_tests:
   stage: test
   script:
+    - gulp build
     - gulp test
   tags:
     - node
diff --git a/gulpfile.babel.js b/gulpfile.babel.js
index beb0e25f..9f3ea07e 100644
--- a/gulpfile.babel.js
+++ b/gulpfile.babel.js
@@ -58,7 +58,7 @@ gulp.task('doc', (cb) => {
     .pipe(jsdoc(config, cb));
 });
 
-gulp.task('test', ['build'], () => {
+gulp.task('test', () => {
     process.chdir('build');
     gulp.src('test/test.js', {read: false})
     .pipe(mocha())
-- 
GitLab


From 0df7b0417bc3dfbf70f2e47e1baa2b6d130225f7 Mon Sep 17 00:00:00 2001
From: Vytor Calixto <vytorcalixto@gmail.com>
Date: Thu, 29 Sep 2016 11:04:20 -0300
Subject: [PATCH 03/11] Add mkdirp to fix creating logs directory

---
 gulpfile.babel.js | 27 ++++++++++++++-------------
 package.json      |  4 +++-
 2 files changed, 17 insertions(+), 14 deletions(-)

diff --git a/gulpfile.babel.js b/gulpfile.babel.js
index 9f3ea07e..5073c55a 100644
--- a/gulpfile.babel.js
+++ b/gulpfile.babel.js
@@ -14,40 +14,41 @@ const Cache = require('gulp-file-cache');
 
 const jsdoc = require('gulp-jsdoc3');
 
+const mkdirp = require('mkdirp');
+
 const cache = new Cache();
 
 function createLogDir() {
     const logDirPath = 'build/logs';
-    fs.access(logDirPath, fs.F_OK, (err) => {
-        if (err) {
-            console.info(`Logs directory not found, creating it.`);
-            fs.mkdir(logDirPath, 0o700, (dirErr) => {
-                console.error(`Failed to create logs directory.\n\tError: ${dirErr}`);
-            });
-        }
+    mkdirp(logDirPath, (err) => {
+        if(err) console.error(err);
     });
 }
 
-/**
-* Compile source files
-*/
-gulp.task('compile', () => {
-    createLogDir();
+gulp.task('lint', () => {
     // run ESLint
     gulp.src('src/**/*.js')
     .pipe(eslint())
     .pipe(eslint.format());
+})
+
+/**
+* Compile source files
+*/
+gulp.task('compile', ['lint'], () => {
 
     // compile source to ES5
     gulp.src('src/**/*.js')
     .pipe(cache.filter())       // cache source files
     .pipe(babel())      // compile only modified files
-    .pipe(cache.cache())        // cache compiled files
+    // .pipe(cache.cache())        // cache compiled files
     .pipe(gulp.dest('build'));  // move compiled files to build directory
 
     // copy configuration file to build directory
     gulp.src('config.json')
     .pipe(gulp.dest('build'));
+
+    createLogDir();
 });
 
 gulp.task('build', ['compile']);
diff --git a/package.json b/package.json
index 87652e4a..2249eef5 100644
--- a/package.json
+++ b/package.json
@@ -50,12 +50,14 @@
     "gulp-cli": "^1.2.2",
     "gulp-eslint": "^3.0.1",
     "gulp-file-cache": "0.0.1",
+    "gulp-function": "^1.3.6",
     "gulp-jsdoc3": "^0.3.0",
     "gulp-mocha": "^3.0.1",
     "gulp-nodemon": "^2.1.0",
     "gulp-plumber": "^1.1.0",
     "gulp-rename": "^1.2.2",
     "gulp-uglify": "^2.0.0",
-    "jsdoc": "^3.4.1"
+    "jsdoc": "^3.4.1",
+    "mkdirp": "^0.5.1"
   }
 }
-- 
GitLab


From b9efdcc2af801031f405180609bcbdf8baab4e26 Mon Sep 17 00:00:00 2001
From: Vytor Calixto <vytorcalixto@gmail.com>
Date: Mon, 3 Oct 2016 11:20:58 -0300
Subject: [PATCH 04/11] Add more dependencies to npm install --global

---
 .gitlab-ci.yml | 5 ++++-
 README.md      | 2 +-
 2 files changed, 5 insertions(+), 2 deletions(-)

diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index f76c7b37..7f7f2cca 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -2,7 +2,7 @@ stages:
   - test
 
 before_script:
-  - npm install --global gulp gulp-cli babel babel-cli babel-core babel-register mocha
+  - npm install --global gulp gulp-cli babel babel-cli babel-core babel-register mocha gulp-mocha gulp-eslint
   - npm install
 
 run_tests:
@@ -12,3 +12,6 @@ run_tests:
     - gulp test
   tags:
     - node
+  cache:
+    paths:
+      - node_modules/
diff --git a/README.md b/README.md
index 12530fa1..38e66ae5 100644
--- a/README.md
+++ b/README.md
@@ -18,7 +18,7 @@ Previous versions of Node.js do not support ECMAScript6, it is recommended to us
 
 4) Install babel and gulp globally
 
-> npm install -g gulp gulp-cli babel babel-cli babel-core babel-register mocha
+> npm install --global gulp gulp-cli babel babel-cli babel-core babel-register mocha gulp-mocha gulp-eslint
 
 5) Install project dependencies
 
-- 
GitLab


From c78181b417b0d3f0e3c564ccc103e89f18f95002 Mon Sep 17 00:00:00 2001
From: Vytor Calixto <vytorcalixto@gmail.com>
Date: Mon, 3 Oct 2016 11:25:50 -0300
Subject: [PATCH 05/11] Add cd and mocha commands to CI file

---
 .gitlab-ci.yml | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index 7f7f2cca..5f3d3cc7 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -9,7 +9,8 @@ run_tests:
   stage: test
   script:
     - gulp build
-    - gulp test
+    - cd build/
+    - mocha
   tags:
     - node
   cache:
-- 
GitLab


From 03a709c7c55abbbba975304b5529436a3cb580b1 Mon Sep 17 00:00:00 2001
From: Vytor Calixto <vytorcalixto@gmail.com>
Date: Mon, 3 Oct 2016 11:29:07 -0300
Subject: [PATCH 06/11] Add config.json to CI file

---
 .gitlab-ci.yml | 1 +
 1 file changed, 1 insertion(+)

diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index 5f3d3cc7..b00b0860 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -8,6 +8,7 @@ before_script:
 run_tests:
   stage: test
   script:
+    - mv config.json.example config.json
     - gulp build
     - cd build/
     - mocha
-- 
GitLab


From 9d7f83e2d92f9a72c8fd139bbc5be58e4d95f4e9 Mon Sep 17 00:00:00 2001
From: Vytor Calixto <vytorcalixto@gmail.com>
Date: Mon, 3 Oct 2016 11:37:04 -0300
Subject: [PATCH 07/11] Add monog_uri and mongo service do CI

---
 .gitlab-ci.yml          | 8 ++++++++
 src/libs/app.js         | 2 --
 src/libs/db/mongoose.js | 2 +-
 src/server.js           | 2 ++
 4 files changed, 11 insertions(+), 3 deletions(-)

diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index b00b0860..72057c13 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -1,6 +1,13 @@
 stages:
   - test
 
+services:
+  - mongo:latest
+
+variables:
+  MONGO_URI: 'mongodb://mongo/app_name'
+  NODE_ENV: 'test'
+
 before_script:
   - npm install --global gulp gulp-cli babel babel-cli babel-core babel-register mocha gulp-mocha gulp-eslint
   - npm install
@@ -8,6 +15,7 @@ before_script:
 run_tests:
   stage: test
   script:
+    - ping -W1 -c1 mongo
     - mv config.json.example config.json
     - gulp build
     - cd build/
diff --git a/src/libs/app.js b/src/libs/app.js
index b0390720..68a814f8 100644
--- a/src/libs/app.js
+++ b/src/libs/app.js
@@ -20,8 +20,6 @@ const mongoose = require(`${libs}/db/mongoose`);
 
 const db = mongoose();
 
-process.env.NODE_ENV = process.env.NODE_ENV || 'development';
-
 app.use(bodyParser.json());
 app.use(bodyParser.urlencoded({ extended: false }));
 app.use(cookieParser());
diff --git a/src/libs/db/mongoose.js b/src/libs/db/mongoose.js
index 13b3950d..948ca833 100644
--- a/src/libs/db/mongoose.js
+++ b/src/libs/db/mongoose.js
@@ -7,7 +7,7 @@ const log = require(`${libs}/log`)(module);
 const mongoose = require('mongoose');
 
 module.exports = () => {
-    const mongoUri = config.get('mongodb:uri');
+    const mongoUri = process.env.MONGO_URI || config.get('mongodb:uri');
     log.debug(`Connecting to MongDB on URI ${mongoUri}`);
     const db = mongoose.connect(mongoUri);
 
diff --git a/src/server.js b/src/server.js
index 4dde9b8e..ea465734 100644
--- a/src/server.js
+++ b/src/server.js
@@ -8,6 +8,8 @@ const log = require(`${libs}/log`)(module);
 
 const app = require(`${libs}/app`);
 
+process.env.NODE_ENV = process.env.NODE_ENV || 'development';
+
 app.set('port', process.env.PORT || config.get('port') || 3000);
 
 app.set('ip', process.env.IP || config.get('ip') || '127.0.0.1');
-- 
GitLab


From 6bc1f0dd558e29ee94aee8600ad1a253cf4e97b5 Mon Sep 17 00:00:00 2001
From: Vytor Calixto <vytorcalixto@gmail.com>
Date: Mon, 3 Oct 2016 11:43:38 -0300
Subject: [PATCH 08/11] Add sed that enables debug

---
 .gitlab-ci.yml | 1 +
 1 file changed, 1 insertion(+)

diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index 72057c13..5d174a0f 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -17,6 +17,7 @@ run_tests:
   script:
     - ping -W1 -c1 mongo
     - mv config.json.example config.json
+    - sed -i -e 's/"debug" : false/"debug" : true/g' config.json
     - gulp build
     - cd build/
     - mocha
-- 
GitLab


From 35395901afa175bbad99016ecac9ec6bab0d0e3b Mon Sep 17 00:00:00 2001
From: Vytor Calixto <vytorcalixto@gmail.com>
Date: Mon, 3 Oct 2016 11:49:00 -0300
Subject: [PATCH 09/11] Fix sed in CI file

---
 .gitlab-ci.yml | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index 5d174a0f..23c45f10 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -17,7 +17,7 @@ run_tests:
   script:
     - ping -W1 -c1 mongo
     - mv config.json.example config.json
-    - sed -i -e 's/"debug" : false/"debug" : true/g' config.json
+    - sed -i -e 's/false/true/g' config.json
     - gulp build
     - cd build/
     - mocha
-- 
GitLab


From ca57500abff9bd90744c3713491c18e5128dc5db Mon Sep 17 00:00:00 2001
From: Vytor Calixto <vytorcalixto@gmail.com>
Date: Mon, 3 Oct 2016 11:53:28 -0300
Subject: [PATCH 10/11] Change debug log level

---
 src/libs/log.js | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/src/libs/log.js b/src/libs/log.js
index ee975b8d..fbe7b139 100644
--- a/src/libs/log.js
+++ b/src/libs/log.js
@@ -38,7 +38,7 @@ function logger(module) {
             }),
             new winston.transports.Console({
                 name: 'debug-log',
-                level: 'debug',
+                level: (process.env.NODE_ENV === 'development') ? 'debug' : 'error',
                 label: getFilePath(module),
                 handleException: true,
                 json: false,
-- 
GitLab


From 1963365b10799e5b2cdbcb037ac8093ae7468f7c Mon Sep 17 00:00:00 2001
From: Vytor Calixto <vytorcalixto@gmail.com>
Date: Mon, 3 Oct 2016 12:00:31 -0300
Subject: [PATCH 11/11] Fix typo in gulpfile

---
 gulpfile.babel.js | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/gulpfile.babel.js b/gulpfile.babel.js
index bbd47eee..10fd314a 100644
--- a/gulpfile.babel.js
+++ b/gulpfile.babel.js
@@ -61,7 +61,7 @@ gulp.task('docco', () => {
 
 gulp.task('doc', ['docco']);
 
-ulp.task('test', () => {
+gulp.task('test', () => {
     process.chdir('build');
     gulp.src('test/test.js', {read: false})
     .pipe(mocha())
-- 
GitLab