From 03ed6b14a785231a6ddd19f7d8fa7b1be34a68ef Mon Sep 17 00:00:00 2001 From: Fabio Ricali Date: Fri, 7 Jul 2017 23:08:29 +0200 Subject: [PATCH] fix interfaces issues --- CHANGELOG.md | 3 +++ src/asserts/mixed.js | 5 ++++- src/interface.js | 5 +++-- test/types.js | 47 ++++++++++++++++++++++++++++++++++++++++++++ 4 files changed, 57 insertions(+), 3 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index f27af77..bb1287a 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -16,9 +16,12 @@ and this project adheres to [Semantic Versioning](http://semver.org/). ### Changed - improved `be.json` - improved `be.buffer` +- now `be.equal` support also object and array ### Fixed - now `be.equal` with zero negative return false +- `be.all.array` failed +- `be.any.array` failed ## [1.3.1] - 2017-07-04 diff --git a/src/asserts/mixed.js b/src/asserts/mixed.js index 006d4ac..d53eb2f 100644 --- a/src/asserts/mixed.js +++ b/src/asserts/mixed.js @@ -160,7 +160,9 @@ Mixed.semVer = (value) => { * be.equal({a:1}, {a:1}) // true */ Mixed.equal = (value, other) => { - console.log('sss',Types.all.array(value, other)); + //console.log('aaa',Types.all.object(value, other)); + //console.log('bbb',Types.all.array(value, other)); + console.log('ccc',Types.all.number(value, other)); if(Types.all.number(value, other)) return value === other && 1 / value === 1 / other; else if(Types.all.string(value, other) || Types.all.regexp(value, other)) @@ -168,6 +170,7 @@ Mixed.equal = (value, other) => { else if(Types.all.boolean(value, other)) return value === other; else if(Types.all.object(value, other) || Types.all.array(value, other)) { + console.log('sss',Types.all.array(value, other)); if (Object.keys(value).length !== Object.keys(other).length) return false; for (let prop in value) { diff --git a/src/interface.js b/src/interface.js index 5ff592d..2c4ed87 100644 --- a/src/interface.js +++ b/src/interface.js @@ -55,7 +55,8 @@ Interface.create = (obj) => { if (typeof obj[i].multiple === 'undefined') { obj.all[i] = (...params) => { let args = params; - if (Interface._isArray(args[0])) + + if (Interface._isArray(args[0]) && args.length === 1) args = args[0]; if(!args.length) return false; @@ -69,7 +70,7 @@ Interface.create = (obj) => { obj.any[i] = (...params) => { let args = params; - if (Interface._isArray(args[0])) + if (Interface._isArray(args[0]) && args.length === 1) args = args[0]; for (let a in args) { diff --git a/test/types.js b/test/types.js index db6ef8a..b8b0bca 100644 --- a/test/types.js +++ b/test/types.js @@ -17,6 +17,30 @@ describe('boolean', function () { assert.equal(result, true); }); + it('boolean interface all, should be return true', function () { + var result = be.all.boolean(true, false, true); + console.log(result); + assert.equal(result, true); + }); + + it('boolean interface any, should be return true', function () { + var result = be.any.boolean(1, false, 1); + console.log(result); + assert.equal(result, true); + }); + + it('boolean array interface any, should be return true', function () { + var result = be.any.boolean([1, false, 1]); + console.log(result); + assert.equal(result, true); + }); + + it('boolean array interface all, should be return true', function () { + var result = be.all.boolean([true, false, true]); + console.log(result); + assert.equal(result, true); + }); + it('string value, should be return false', function () { var result = be.boolean('true'); console.log(result); @@ -636,4 +660,27 @@ describe('defined_', function () { console.log(result); assert.equal(result, false); }); +}); + +describe('array_', function () { + it('should be return true', function () { + var result = be.array([1,2,3]); + console.log(result); + assert.equal(result, true); + }); + it('interface all, should be return true', function () { + var result = be.all.array([1,2,3],[2,4,5]); + console.log(result); + assert.equal(result, true); + }); + it('interface any, should be return true', function () { + var result = be.any.array([1,2,3],true); + console.log(result); + assert.equal(result, true); + }); + it('should be return false', function () { + var result = be.array('hello'); + console.log(result); + assert.equal(result, false); + }); }); \ No newline at end of file