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(); + }); + + }); +});