Files
react/test/lib/reportTestResults.browser.js
2015-02-13 02:43:42 +03:00

61 lines
1.4 KiB
JavaScript

var __DEBUG__ = location.search.substring(1).indexOf('debug') !== -1;
if (typeof console === 'undefined') {
console = {
log: function() {},
warn: function() {},
error: function() {}
};
}
var __consoleReport__ = [];
console._log = console.log;
console.log = function(message) {
console._log(message);
if (__DEBUG__) {
postDataToURL({type:'log', message:message}, '/reportTestResults');
} else {
__consoleReport__.push({type:'log', message:message});
}
};
console._error = console.error;
console.error = function(message) {
console._error(message);
if (__DEBUG__) {
postDataToURL({type:'error', message:message}, '/reportTestResults');
} else {
__consoleReport__.push({type:'error', message:message});
}
};
console._flush = function() {
postDataToURL(__consoleReport__, '/console');
__consoleReport__.length = 0;
};
(function(env) {
env.addReporter(new jasmine.JSReporter());
env.addReporter(new TAPReporter(console.log.bind(console)));
function report() {
if (typeof jasmine.getJSReport !== 'function') {
return setTimeout(report, 100);
}
if (!__DEBUG__) {
console.log('DONE\t' + navigator.userAgent);
console._flush();
}
}
var oldCallback = env.currentRunner().finishCallback;
env.currentRunner().finishCallback = function() {
if (oldCallback) {
oldCallback.apply(this, arguments);
}
report();
};
}(window.jasmine.getEnv()));