aver
Version:
ultraminimal test dsl
60 lines (59 loc) • 1.53 kB
JavaScript
(function(){
var AssertionError, r, level;
AssertionError = require('assert').AssertionError;
require('colors');
r = curry$(function(s, n){
return function(it){
return it.join('');
}((function(){
var i$, to$, results$ = [];
for (i$ = 0, to$ = n; i$ < to$; ++i$) {
results$.push(s);
}
return results$;
}()));
});
level = 0;
exports.describe = exports.should = function(label, fn){
var log, error, e, s;
log = function(it){
return console.log(r(" ", level) + it);
};
error = function(it){
return console.error(r(" ", level) + it);
};
try {
log(label + ':');
level++;
fn(exports.describe);
level--;
return log('✓'.green + " " + label.white);
} catch (e$) {
e = e$;
s = (function(){
switch (false) {
case !(e instanceof AssertionError):
return '✖';
default:
return '‼';
}
}());
level--;
error(s.red + " " + label.white + " " + e.toString().grey);
throw e;
}
};
function curry$(f, bound){
var context,
_curry = function(args) {
return f.length > 1 ? function(){
var params = args ? args.concat() : [];
context = bound ? context || this : this;
return params.push.apply(params, arguments) <
f.length && arguments.length ?
_curry.call(context, params) : f.apply(context, params);
} : f;
};
return _curry();
}
}).call(this);