cloudcmd/test/lib/util.js
2015-03-20 08:11:32 -04:00

98 lines
3.3 KiB
JavaScript

(function() {
'use strict';
/*global describe, it */
var should = require('should'),
DIR = '../../',
Util = require(DIR + 'lib/util');
describe('Util', function() {
describe('getExt', function() {
it('should return "" when extension is none', function() {
var EXT = '',
name = 'file-withot-extension',
ext = Util.getExt(name);
should(ext).eql(EXT);
});
it('should return ".png" in files "picture.png"', function() {
var EXT = '.png',
name = 'picture.png',
ext = Util.getExt(name);
should(ext).eql(EXT);
});
});
describe('exec', function() {
it('should execute function with parameters', function() {
var WORD = 'hello',
func = function(word) {
return word;
},
word = Util.exec(func, WORD);
WORD.should.equal(word);
});
it('should not execute function, if type of first argument not function', function() {
var WORD = 'hello',
word = Util.exec(WORD);
(word === undefined).should.be.true;
});
});
describe('exec.ret', function() {
it('should return function that try to call callback', function() {
var STR = 'hello world',
func1 = function() {
var args = [].slice.call(arguments);
return args.join(' ');
},
func2 = Util.exec.ret(func1, 'hello'),
str = func2('world');
str.should.be.equal(STR);
});
});
describe('exec.parallel', function() {
it('should execute a couple functions async and return results in callback', function() {
var WORD = 'hello world',
funcSlow = function(callback) {
setTimeout(function() {
callback(null, 'hello');
}, 10);
},
funcFast = function(callback) {
setTimeout(function() {
callback(null, 'world');
}, 1);
};
Util.exec.parallel([funcSlow, funcFast], function(error, hello, world) {
WORD.should.equal(hello + ' ' + world);
});
});
});
describe('render', function() {
it('should render template with object of params', function() {
var WORD = 'hello world',
word = Util.render('hello {{ name }}', {
name: 'world'
});
WORD.should.equal(word);
});
});
});
})();