diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index 3d36836b046324e34acd0a78737564f30fc5d1ed..d50a056e2f15105029c81a3c1b16b437bed9490f 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -16,7 +16,7 @@ before_script:
 run_tests:
   stage: test
   script:
-    - mv test/config.js.example  test/config.js
+    - mv config_test.js.example  config_test.js
     - gulp test
   tags:
     - node
diff --git a/gulpfile.js b/gulpfile.js
index 94ef9210e21d36a3a687e4ee37af46e806449e28..8ac6a94562c283b0d68cdd9a529f646d0f7b56af 100644
--- a/gulpfile.js
+++ b/gulpfile.js
@@ -1,3 +1,4 @@
+/*jshint esversion:6*/
 const gulp   = require('gulp');
 const jshint = require('gulp-jshint');
 const shell = require('gulp-shell');
@@ -43,8 +44,8 @@ gulp.task('create_database_test', function(){
   var config = require(test_config_file);
 
   return gulp.src("database")
-      .pipe(shell("./database/create_database.sh " + config.db_config.database))
-      .pipe(shell("./database/create_user.sh " + config.db_config.user + " " + config.db_config.password + " " + config.db_config.database ));
+      .pipe(shell("yes | ./database/create_database.sh " + config.db_config.database))
+      .pipe(shell("yes | ./database/create_user.sh " + config.db_config.user + " " + config.db_config.password + " " + config.db_config.database ));
 });
 
 
diff --git a/package.json b/package.json
index 7d64b2e6ba872fd0417e056c4592d422bb5b22ed..4e52e6f8cfa8e74dda31d7f0842519bfcc4129d0 100644
--- a/package.json
+++ b/package.json
@@ -30,7 +30,7 @@
     "gulp": "^3.9.1",
     "gulp-istanbul": "^1.1.2",
     "gulp-jshint": "^2.0.4",
-    "gulp-mocha": "^4.3.1",
+    "gulp-mocha": "^v3.0.1",
     "gulp-shell": "^0.6.3",
     "jshint": "latest",
     "jshint-stylish": "^2.2.1",
diff --git a/src/db/query_builder.js b/src/db/query_builder.js
index 6911888cd50e3997a28299043283139a3bb2c0ad..7ebc44575a382ea76233e73fcae6c8f3c348be2a 100644
--- a/src/db/query_builder.js
+++ b/src/db/query_builder.js
@@ -1,21 +1,17 @@
-module.exports = function(){
+squel = require("squel").useFlavour('postgres');
 
-  squel = require("squel").useFlavour('postgres');
-
-
-  return {
-    set_from_attr : function (query, obj){
-      for (var property in obj) {
-        if (obj.hasOwnProperty(property)) {
-          query.set(property, obj[property]);
-        }
+module.exports =  {
+  set_from_attr : function (query, obj){
+    for (var property in obj) {
+      if (obj.hasOwnProperty(property)) {
+        query.set(property, obj[property]);
       }
-      return query;
-    },
-    insert: function (table, obj){
-      var q = squel.insert().into(table);
-      this.set_from_attr(q, obj);
-      return q;
     }
-  };
+    return query;
+  },
+  insert: function (table, obj){
+    var q = squel.insert().into(table);
+    this.set_from_attr(q, obj);
+    return q;
+  }
 };
diff --git a/src/routes/agent.js b/src/routes/agent.js
index c60064101fba548a0c0c9167b6e8dc6be19c7324..0bd2f8bf686e91d209dd11ddbd123598584cdeda 100644
--- a/src/routes/agent.js
+++ b/src/routes/agent.js
@@ -25,7 +25,7 @@ var async = require('async');
 
 
 module.exports = function(agentVersion) {
-  qb = require("../db/query_builder.js")();
+  qb = require("../db/query_builder.js");
 
   return {
     collect: function(req, res) {
diff --git a/test/db/query_builder.js b/test/db/query_builder.js
new file mode 100644
index 0000000000000000000000000000000000000000..a6e86ec775cbb8485d91145ed0945ff9601d7b7e
--- /dev/null
+++ b/test/db/query_builder.js
@@ -0,0 +1,37 @@
+/*jshint esversion: 6*/
+process.env.NODE_ENV = 'test';
+let chai = require('chai');
+let should = chai.should();
+
+
+
+var toType = function(obj) {
+  return ({}).toString.call(obj).match(/\s([a-zA-Z]+)/)[1].toLowerCase();
+};
+
+describe('Query builder',() => {
+  const qb = require('../../src/db/query_builder.js');
+  var squel = require("squel").useFlavour('postgres');
+
+  it('insert return a valid query ', (done) => {
+      const table = 'tb';
+      const obj = {
+        attr1: "v1",
+        attr2: 2
+      };
+      var trueq = squel.insert()
+                        .into(table)
+                        .set('attr1', obj.attr1)
+                        .set('attr2', obj.attr2);
+
+      var resultq = qb.insert(table, obj);
+
+      resultq.should.be.an('object');
+      resultq.toString().should.equal(trueq.toString());
+
+      done();
+  });
+
+
+
+});
diff --git a/test/agent.js b/test/routes/agent.js
similarity index 63%
rename from test/agent.js
rename to test/routes/agent.js
index 24d51d13f38934121e5a5b088d3f532194f9cc80..cf2598ec1fab5251a10a8e60b10093e17b222c09 100644
--- a/test/agent.js
+++ b/test/routes/agent.js
@@ -1,7 +1,10 @@
+/*jshint esversion: 6*/
+
 process.env.NODE_ENV = 'test';
 let chai = require('chai');
 let chaiHttp = require('chai-http');
-const server = require('../src/server.js');
+const src_dir='../../src/';
+const server = require(src_dir + 'server.js');
 let should = chai.should();
 
 chai.use(chaiHttp);
@@ -27,7 +30,7 @@ describe('course_treatment', () => {
     "TransactionId" : "1",
     "HstryTaskName" : "HTN1"
   }];
-  it('it should post  courses', (done) => {
+  it('it should post courses', (done) => {
     chai.request(server)
         .post('/api/agent/collect/course_treatment')
         .send({courses: courses})
@@ -37,4 +40,15 @@ describe('course_treatment', () => {
         });
 
   });
+  it('it should give a error for save duplicate courses', (done) =>{
+    chai.request(server)
+        .post('/api/agent/collect/course_treatment')
+        .send({courses: courses})
+        .end((err, res) => {
+          res.should.have.status(500);
+          res.body.should.be.a('object');
+          res.body.should.have.property('error').eql('db_query_failed');
+          done();
+        });
+  });
 });
diff --git a/test/routes/ping.js b/test/routes/ping.js
new file mode 100644
index 0000000000000000000000000000000000000000..c1b8d066a0c5b01d47e56f563dd3efb641eeee1e
--- /dev/null
+++ b/test/routes/ping.js
@@ -0,0 +1,28 @@
+/*jshint esversion: 6*/
+
+process.env.NODE_ENV = 'test';
+let chai = require('chai');
+let chaiHttp = require('chai-http');
+const src_dir='../../src/';
+const server = require(src_dir + 'server.js');
+let should = chai.should();
+
+chai.use(chaiHttp);
+
+
+//console.log("lol");
+//console.log(server);
+describe('ping', () => {
+
+
+  it('it should pong', (done) => {
+    chai.request(server)
+        .get('/api/ping')
+        .end((err, res) => {
+          res.should.have.status(200);
+          res.body.should.have.property('message').eql('Pong');
+          done();
+        });
+
+  });
+});