UNPKG

dookie-tools

Version:

A set of tools to use in your scripts. Fast and easy!

449 lines (352 loc) 12.4 kB
'use strict'; var should = require('chai').should(); var expect = require('chai').expect; var dtools = require('../dtools'); describe('#completeZerosLeft', function() { it('converts 2 in 4 characters string', function() { var out = dtools.completeZerosLeft(2, 4) out.should.be.a('string'); out.should.equal('0002'); out.should.have.length(4); }); it('converts 24 in 3 characters string', function() { dtools.completeZerosLeft(24, 3).should.equal('024'); }); }); describe('randomInt', function() { it('generates an integer in range [0,10]', function() { var out = dtools.randomInt(0, 10); out.should.least(0); out.should.most(10); }); it('generates an integer in range [2,4]', function() { var out = dtools.randomInt(2, 4); out.should.least(2); out.should.most(4); }); }); describe('numberArray', function() { it('generates the array [2013,2014,2015]', function() { var out = dtools.numberArray(2013, 3); out[0].should.equal(2013); out[1].should.equal(2014); out[2].should.equal(2015); }); it('generates the array [2015,2014,2013]', function() { var out = dtools.numberArray(2013, 3, true); out[0].should.equal(2015); out[1].should.equal(2014); out[2].should.equal(2013); }); it('generates an array of 100 consecutive numbers', function() { var out = dtools.numberArray(1, 100); out.length.should.equal(100); }); }); describe('friendlyDateRepresentation', function() { it('today - minutes', function() { var d1 = new Date(); var d2 = new Date(d1.getTime() - (60 * 1000 * 30)); var out = dtools.friendlyDateRepresentation(d2.toISOString()); out.should.contain('Hace 30 minutos'); }); it('today - hours', function() { var d1 = new Date(); var d2 = new Date(d1.getTime() - (60 * 1000 * 60)); var out = dtools.friendlyDateRepresentation(d2.toISOString()); out.should.contain('Hace 1 hora'); }); it('yesterday', function() { var out = dtools.friendlyDateRepresentation(new Date(new Date().getTime() - 3600 * 1000 * 24).toString()); out.should.contain('Ayer'); }); it('yesterday (negation)', function() { var out = dtools.friendlyDateRepresentation(new Date(new Date().getTime() - 3600 * 1000 * 24 * 3).toString()); out.should.not.contain('Ayer'); }); it('a day', function() { var out = dtools.friendlyDateRepresentation('2001-01-10'); out.should.contain('10 de Enero'); }); it('other day', function() { var out = dtools.friendlyDateRepresentation('2001-01-24T23:15:00.000Z'); out.should.contain('24 de Enero'); }); }); describe('jsonKeyCharReplacing', function() { var testJSON = {}; beforeEach(function(done) { testJSON = { 'test.con': [], 'test2.con': { 'test3.con': [{ 'test4.con': 'hello' }], 'test5.con': 'hello.man' }, 'test6.con': 'hi.', 'test7con': { 'test8con': [{ 'test9.con': 'hello' }], 'test.10.con': 'hello.man' } }; done(); }); it('replace - first level keys', function() { var out = dtools.jsonKeyCharReplacing(testJSON, '\.', '_', false); out.test2_con['test5.con'].should.be.equal('hello.man'); out.test6_con.should.be.equal('hi.'); }); it('replace - all keys', function() { var out = dtools.jsonKeyCharReplacing(testJSON, '\.', '_', true); out.test2_con['test5_con'].should.be.equal('hello.man'); out.test2_con.test3_con[0]['test4_con'].should.be.equal('hello'); out.test7con.test8con[0]['test9_con'].should.be.equal('hello'); out.test7con.test_10_con.should.be.equal('hello.man'); }); }); describe('cleanArray', function() { var testArray = []; beforeEach(function(done) { testArray = ['Local', '', '', 'Visitante', '', '', '']; done(); }); it('clean array basic', function() { var out = dtools.cleanArray(testArray); out.length.should.be.equal(2); out[0].should.be.equal('Local'); out[1].should.be.equal('Visitante'); }); it('clean array custom blank element', function() { var out = dtools.cleanArray(testArray, 'Local'); out.length.should.be.equal(1); out[0].should.be.equal('Visitante'); }); }); describe('findStringInArray', function() { var testArray = []; beforeEach(function(done) { testArray = ['Local', '', '', 'Visitante y más', '', '', '']; done(); }); it('findStringInArray (no stricted)', function() { var out = dtools.findStringInArray('Visitante', testArray, false); out.should.be.equal(true); out = dtools.findStringInArray('Local', testArray, false); out.should.be.equal(true); }); it('findStringInArray (stricted)', function() { var out = dtools.findStringInArray('Visitante', testArray, true); out.should.be.equal(false); out = dtools.findStringInArray('Local', testArray, true); out.should.be.equal(true); }); }); describe('milisecondsToTime', function() { it('seconds', function() { var out = dtools.milisecondsToTime(3012); out.should.be.equal('3s'); }); it('minutes', function() { var out = dtools.milisecondsToTime(123012); out.should.be.equal('2m 3s'); }); it('hours', function() { var out = dtools.milisecondsToTime(12123012); out.should.be.equal('3h 22m 3s'); }); }); describe('iso8601DurationtoMilliseconds', function() { it('seconds', function() { var out = dtools.iso8601DurationtoMilliseconds('PT3S'); out.should.be.equal(3000); }); it('minutes', function() { var out = dtools.iso8601DurationtoMilliseconds('PT2M3S'); out.should.be.equal(123000); }); it('hours', function() { var out = dtools.iso8601DurationtoMilliseconds('PT3H22M3S'); out.should.be.equal(12123000); }); }); describe('replaceAll', function() { it('three ocurrences uppercase and lowercase', function() { var out = dtools.replaceAll('The cat and the dolphin eat the fish', 'the ', '-'); out.should.be.equal('The cat and -dolphin eat -fish'); }); it('three ocurrences uppercase and lowercase (empty replaceString)', function() { var out = dtools.replaceAll('The cat and the dolphin eat the fish', 'the ', ''); out.should.be.equal('The cat and dolphin eat fish'); }); it('three ocurrences uppercase and lowercase (case sensitive)', function() { var out = dtools.replaceAll('The cat and the dolphin eat the fish', 'the ', '', true); out.should.be.equal('cat and dolphin eat fish'); }); }); describe('isJSONObject', function() { var testObject1 = {}; var testObject2 = {}; beforeEach(function(done) { testObject1 = { 'key1': 'value1', 'key2': 'value2', 'key3': 'value3' }; testObject2 = { 'key1': 'value1', 'key2': ['value2', 'value3'], 'key3': 'value3', 'key4': 3 }; done(); }); it('normal result (input: JSON Object)', function() { var out = dtools.isJSONObject(testObject1); out.should.be.true; }); it('normal result (input: JSON Array)', function() { var out = dtools.isJSONObject(testObject2['key2']); out.should.be.true; }); it('error result (input: string)', function() { var out = dtools.isJSONObject(testObject2['key3']); out.should.be.false; }); it('error result (input: number)', function() { var out = dtools.isJSONObject(testObject2['key4']); out.should.be.false; }); }); describe('isJSONArray', function() { var testObject1 = {}; var testObject2 = {}; beforeEach(function(done) { testObject1 = { 'key1': 'value1', 'key2': 'value2', 'key3': 'value3' }; testObject2 = { 'key1': 'value1', 'key2': ['value2', 'value3'], 'key3': 'value3', 'key4': 3 }; done(); }); it('normal result (input: JSON Array)', function() { var out = dtools.isJSONArray(testObject2['key2']); out.should.be.true; }); it('error result (input: JSON Object)', function() { var out = dtools.isJSONArray(testObject1); out.should.be.false; }); }); describe('countJSONObjectProperties', function() { var testObject1 = {}; var testObject2 = {}; beforeEach(function(done) { testObject1 = { 'key1': 'value1', 'key2': 'value2', 'key3': 'value3' }; done(); }); it('normal result', function() { var out = dtools.countJSONObjectProperties(testObject1); out.should.be.equal(3); }); it('error result', function() { var out = dtools.countJSONObjectProperties("hello!"); out.should.be.equal(-1); }); }); describe('getRandomPropertyFromJSONObject', function() { var testObject1 = {}; var testObject2 = {}; beforeEach(function(done) { testObject1 = { 'key1': 'value1', 'key2': 'value2', 'key3': 'value3' }; done(); }); it('normal result', function() { var out = dtools.getRandomPropertyFromJSONObject(testObject1); out.should.be.a('string'); out.should.have.string('key'); }); it('error (no JSON Object - input: string)', function() { var out = dtools.getRandomPropertyFromJSONObject("S"); expect(out).to.be.undefined; }); it('error (no JSON Object - input: JSON Array)', function() { var out = dtools.getRandomPropertyFromJSONObject(['s', 'e']); expect(out).to.be.undefined; }); }); describe('plainJSONObjectToArray', function() { var testObject1 = {}; var testObject2 = {}; beforeEach(function(done) { testObject1 = { 'key1': 'value1', 'key2': 'value2', 'key3': 'value3' }; testObject2 = { 'key1': 'value1', 'key2': ['value2', 'value3'], 'key3': 'value3', 'key4': 3 }; done(); }); it('normal result', function() { var out = dtools.plainJSONObjectToArray(testObject1); out.should.have.length(3); out.should.be.have.members(['value1', 'value2', 'value3']); }); it('error (no plain JSON Object)', function() { var out = dtools.plainJSONObjectToArray(testObject2); expect(out).to.be.undefined; }); it('error (no JSON Object - input: JSON Array)', function() { var out = dtools.plainJSONObjectToArray(testObject2['key2']); expect(out).to.be.undefined; }); }); describe('diffArrays', function() { var testObject1 = {}; var testObject2 = {}; beforeEach(function(done) { testObject2 = { 'key1': 'value1', 'key2': ['value2', 'value3','value4','value5','value6', 'value8', 'value7'], 'key3': ['value2', 'value3','value5','value6','value10'], 'key4': 3 }; done(); }); it('normal result (1)', function() { var out = dtools.diffArrays(testObject2['key2'], testObject2['key3']); out.should.have.length(3); out.should.be.have.members(['value4','value7','value8']); }); it('normal result (2)', function() { var out = dtools.diffArrays(testObject2['key3'], testObject2['key2']); out.should.have.length(1); out.should.be.have.members(['value10']); }); it('normal result (1 - with limit)', function() { var out = dtools.diffArrays(testObject2['key2'], testObject2['key3'],2); out.should.have.length(2); out.should.be.have.members(['value4','value8']); }); });