134 lines
3.1 KiB
JavaScript
134 lines
3.1 KiB
JavaScript
|
'use strict';
|
||
|
|
||
|
var should = require('chai').should();
|
||
|
var utils = require('../lib/utils');
|
||
|
|
||
|
describe('Utils', function() {
|
||
|
|
||
|
describe('#isHash', function() {
|
||
|
|
||
|
it('false for short string', function() {
|
||
|
var a = utils.isHash('ashortstring');
|
||
|
a.should.equal(false);
|
||
|
});
|
||
|
|
||
|
it('false for long string', function() {
|
||
|
var a = utils.isHash('00000000000000000000000000000000000000000000000000000000000000000');
|
||
|
a.should.equal(false);
|
||
|
});
|
||
|
|
||
|
it('false for correct length invalid char', function() {
|
||
|
var a = utils.isHash('z000000000000000000000000000000000000000000000000000000000000000');
|
||
|
a.should.equal(false);
|
||
|
});
|
||
|
|
||
|
it('false for invalid type (buffer)', function() {
|
||
|
var a = utils.isHash(new Buffer('abcdef', 'hex'));
|
||
|
a.should.equal(false);
|
||
|
});
|
||
|
|
||
|
it('false for invalid type (number)', function() {
|
||
|
var a = utils.isHash(123456);
|
||
|
a.should.equal(false);
|
||
|
});
|
||
|
|
||
|
it('true for hash', function() {
|
||
|
var a = utils.isHash('fc63629e2106c3440d7e56751adc8cfa5266a5920c1b54b81565af25aec1998b');
|
||
|
a.should.equal(true);
|
||
|
});
|
||
|
|
||
|
});
|
||
|
|
||
|
describe('#isSafeNatural', function() {
|
||
|
|
||
|
it('false for float', function() {
|
||
|
var a = utils.isSafeNatural(0.1);
|
||
|
a.should.equal(false);
|
||
|
});
|
||
|
|
||
|
it('false for string float', function() {
|
||
|
var a = utils.isSafeNatural('0.1');
|
||
|
a.should.equal(false);
|
||
|
});
|
||
|
|
||
|
it('false for string integer', function() {
|
||
|
var a = utils.isSafeNatural('1');
|
||
|
a.should.equal(false);
|
||
|
});
|
||
|
|
||
|
it('false for negative integer', function() {
|
||
|
var a = utils.isSafeNatural(-1);
|
||
|
a.should.equal(false);
|
||
|
});
|
||
|
|
||
|
it('false for negative integer string', function() {
|
||
|
var a = utils.isSafeNatural('-1');
|
||
|
a.should.equal(false);
|
||
|
});
|
||
|
|
||
|
it('false for infinity', function() {
|
||
|
var a = utils.isSafeNatural(Infinity);
|
||
|
a.should.equal(false);
|
||
|
});
|
||
|
|
||
|
it('false for NaN', function() {
|
||
|
var a = utils.isSafeNatural(NaN);
|
||
|
a.should.equal(false);
|
||
|
});
|
||
|
|
||
|
it('false for unsafe number', function() {
|
||
|
var a = utils.isSafeNatural(Math.pow(2, 53));
|
||
|
a.should.equal(false);
|
||
|
});
|
||
|
|
||
|
it('true for positive integer', function() {
|
||
|
var a = utils.isSafeNatural(1000);
|
||
|
a.should.equal(true);
|
||
|
});
|
||
|
|
||
|
});
|
||
|
|
||
|
describe('#startAtZero', function() {
|
||
|
|
||
|
it('will set key to zero if not set', function() {
|
||
|
var obj = {};
|
||
|
utils.startAtZero(obj, 'key');
|
||
|
obj.key.should.equal(0);
|
||
|
});
|
||
|
|
||
|
it('not if already set', function() {
|
||
|
var obj = {
|
||
|
key: 10
|
||
|
};
|
||
|
utils.startAtZero(obj, 'key');
|
||
|
obj.key.should.equal(10);
|
||
|
});
|
||
|
|
||
|
it('not if set to false', function() {
|
||
|
var obj = {
|
||
|
key: false
|
||
|
};
|
||
|
utils.startAtZero(obj, 'key');
|
||
|
obj.key.should.equal(false);
|
||
|
});
|
||
|
|
||
|
it('not if set to undefined', function() {
|
||
|
var obj = {
|
||
|
key: undefined
|
||
|
};
|
||
|
utils.startAtZero(obj, 'key');
|
||
|
should.equal(obj.key, undefined);
|
||
|
});
|
||
|
|
||
|
it('not if set to null', function() {
|
||
|
var obj = {
|
||
|
key: null
|
||
|
};
|
||
|
utils.startAtZero(obj, 'key');
|
||
|
should.equal(obj.key, null);
|
||
|
});
|
||
|
|
||
|
});
|
||
|
|
||
|
});
|