From f52c51a238620546401838b52055712cf15e014b Mon Sep 17 00:00:00 2001 From: antoinehage Date: Sat, 22 Dec 2018 11:09:01 -0500 Subject: [PATCH 1/5] version with format 1.1 is supported --- index.js | 3 ++- lib/version.js | 40 ++++++++++++++++++++++++++++++++++++++++ 2 files changed, 42 insertions(+), 1 deletion(-) create mode 100644 lib/version.js diff --git a/index.js b/index.js index dfba8cb..0e1bce5 100644 --- a/index.js +++ b/index.js @@ -6,5 +6,6 @@ */ module.exports = { "registry" : require("./lib/registry.js"), - "utils" : require("./lib/utils.js") + "utils" : require("./lib/utils.js"), + "version" : require("./lib/version.js") }; \ No newline at end of file diff --git a/lib/version.js b/lib/version.js new file mode 100644 index 0000000..e9e7f7e --- /dev/null +++ b/lib/version.js @@ -0,0 +1,40 @@ +"use strict"; + +let version = { + 'getLatest': (vPre, vNew) => { + if (!vPre) + return vNew; + + if (version.validate(vPre) && version.validate(vNew)) { + let vNewNb = parseFloat(vNew); + let vPreNb = parseFloat(vPre); + + if (vNewNb > vPreNb) + return vNew; + } + return vPre; + }, + + 'isLatest': (vSrc, vCom) => { + if (version.validate(vSrc) && version.validate(vCom)) { + let vSrcNb = parseFloat(vSrc); + let vComNb = parseFloat(vCom); + + if (vSrcNb > vComNb) + return true; + } + return false; + }, + + 'validate': (ver) => { + if (ver) { + let matches = ver.match(/[0-9]+(.[0-9]+)?/); + if (matches && matches.length > 0) { + return true; + } + } + return false + } +}; + +module.exports = version; \ No newline at end of file From f1d24f682f9c600291b938be7990fefbe3d66064 Mon Sep 17 00:00:00 2001 From: antoinehage Date: Sat, 22 Dec 2018 12:37:15 -0500 Subject: [PATCH 2/5] increased coverage --- test/unit/lib.utils.test.js | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/test/unit/lib.utils.test.js b/test/unit/lib.utils.test.js index b434bfd..012bd39 100644 --- a/test/unit/lib.utils.test.js +++ b/test/unit/lib.utils.test.js @@ -22,4 +22,16 @@ describe("testing utils", function(){ done(); }); }); + + describe("testing validProperty", function(){ + var obj1= { + "antoine" : "hage" + }; + + it("testing validProperty", function(done){ + var obj2 = utils.validProperty(obj1,"antoine"); + assert.ok(obj2); + done(); + }); + }); }); \ No newline at end of file From 89c7d1b64a12da205292d413355f0df54e728602 Mon Sep 17 00:00:00 2001 From: antoinehage Date: Fri, 4 Jan 2019 08:03:17 -0500 Subject: [PATCH 3/5] assured ver is a string before triggering match --- lib/version.js | 2 ++ 1 file changed, 2 insertions(+) diff --git a/lib/version.js b/lib/version.js index e9e7f7e..747a715 100644 --- a/lib/version.js +++ b/lib/version.js @@ -28,6 +28,8 @@ let version = { 'validate': (ver) => { if (ver) { + if (typeof ver !== 'string') + ver = "" + ver; let matches = ver.match(/[0-9]+(.[0-9]+)?/); if (matches && matches.length > 0) { return true; From 7a9245c728fe2faddecc648f374998cd84f4dded Mon Sep 17 00:00:00 2001 From: antoinehage Date: Mon, 7 Jan 2019 14:42:57 -0500 Subject: [PATCH 4/5] added more test cases --- test/unit/_servers.test.js | 1 + test/unit/lib.version.test.js | 61 +++++++++++++++++++++++++++++++++++ 2 files changed, 62 insertions(+) create mode 100644 test/unit/lib.version.test.js diff --git a/test/unit/_servers.test.js b/test/unit/_servers.test.js index 35c612b..baa041f 100644 --- a/test/unit/_servers.test.js +++ b/test/unit/_servers.test.js @@ -10,6 +10,7 @@ describe("importing sample data", function () { after(function (done) { console.log('test data imported.'); require("./lib.utils.test.js"); + require("./lib.version.test.js"); done(); }); }); \ No newline at end of file diff --git a/test/unit/lib.version.test.js b/test/unit/lib.version.test.js new file mode 100644 index 0000000..18880d4 --- /dev/null +++ b/test/unit/lib.version.test.js @@ -0,0 +1,61 @@ +"use strict"; +let assert = require('assert'); +let helper = require("../helper.js"); + +var utils = helper.requireModule('./lib/version'); + +describe("testing version", function () { + + + let version1 = "1.0"; + let version2 = "1.2"; + let wrongVersion = "b.a.3"; + + it("testing getLatest", function (done) { + let ver = utils.getLatest(version1, version2); + assert.ok(ver); + assert.equal(ver, version2); + done(); + }); + it("testing getLatest with null version", function (done) { + let ver = utils.getLatest(null, version2); + assert.ok(ver); + assert.equal(ver, version2); + done(); + }); + it("testing getLatest with wrong version", function (done) { + let ver = utils.getLatest(wrongVersion, version2); + assert.ok(ver); + assert.equal(ver, wrongVersion); + done(); + }); + + + it("testing isLatest - false", function (done) { + let ver = utils.isLatest(version1, version2); + assert.ok(!ver); + done(); + }); + it("testing isLatest - true", function (done) { + let ver = utils.isLatest(version2, version1); + assert.ok(ver); + done(); + }); + it("testing isLatest with null", function (done) { + let ver = utils.isLatest(null, version2); + assert.ok(!ver); + done(); + }); + + + it("testing validate not string", function (done) { + let ver = utils.validate(1); + assert.ok(ver); + done(); + }); + it("testing validate null", function (done) { + let ver = utils.validate(null); + assert.ok(!ver); + done(); + }); +}); \ No newline at end of file From 3594b9fcefbf8c1401a9bd4ac59fc0b60e65f07b Mon Sep 17 00:00:00 2001 From: antoinehage Date: Mon, 7 Jan 2019 14:43:39 -0500 Subject: [PATCH 5/5] bumped version to 1.0.3 --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index f810b65..9d80641 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { "name": "soajs.core.libs", "description": "SOAJS core libraries package", - "version": "1.0.2", + "version": "1.0.3", "author": { "name": "soajs team", "email": "team@soajs.org"