mold-js
Version:
MoldJS structure and pattern framework commandline interface
125 lines (104 loc) • 2.92 kB
JavaScript
//!info transpiled
Seed({
type : "class"
},
function(){
var _showStack = function(stack){
var parts = stack.split('\n');
var part = parts[0];
var content = decodeURIComponent(part);
var contentParts = content.split('\n');
var counter = contentParts.pop();
var counterParts = counter.split(":");
var output = "%c"
for(var i = 0; i < contentParts.length; i++){
var part = contentParts[i];
if(iterator + 1 === +counterParts[1]){
output += "%c" + part + "\n" + "%c";
}else{
output += part + "\n";
}
};
if(!contentParts.length){
output = stack;
}
console.log(output, "color:#000000; background-color:#ffffff;", "color:#ffffff; background-color:#ff0000;", "color:#000000; background-color:#ffffff;");
}
var _tabsByLevel = function(level){
var output = "";
for(var i = 0; i < level; i++){
output += " ";
}
return output;
}
var _info = function(value, level){
console.info(_tabsByLevel(level) + "INFO: " + value);
}
var _error = function(value, level){
console.log("%c" + _tabsByLevel(level) + "ERROR: " + value, "color: #ff0000; font-weight: bold;");
if(value.stack){
_showStack(value.stack)
//console.log("%c" + _tabsByLevel(level) + "ERROR: " + decodeURIComponent(value.stack), "color: #ff0000; font-weight: bold;");
}
}
var _success = function(value, level){
console.log("%c" + _tabsByLevel(level) + " " + value, "color: #00bb00; font-weight: bold;");
}
var _getInfo = function(entry, output){
if(!output){
var output = {
hasErrors : false,
errorCount : 0,
successCount : 0,
time : 0,
tests : 0
}
}
output.tests++;
output.time += entry.executionTime;
if(entry.error){
output.hasError = true;
output.errorCount++;
}else{
output.successCount++;
}
if(entry.children.length){
entry.children.forEach(function(subentry){
output = _getInfo(subentry, output);
});
}
return output;
}
var _iterateResult = function(result, level){
result.children.forEach(function(child){
var info = _getInfo(child);
var time = " - " + Math.round(info.time) + "ms";
if(child.description){
message = child.description + " (" + info.successCount + "/" + info.errorCount + ")" + time;
}else{
message = child.type + " (" + info.successCount + "/" + info.errorCount + ")"+ time;
}
if(info.hasError){
_error(message, level);
}else{
_success(message, level)
}
if(child.success){
//_success("Test successfully!", level + 1);
}else if(child.error){
_error(child.error, level + 1);
}
if(info.hasError){
if(child.children.length){
_iterateResult(child, level + 1);
}
}
});
}
this.publics = {
addResult : function(result){
_iterateResult(result, 0);
}
}
}
)