Truncate pretty printer output that is more than j$.MAX_PRETTY_PRINT_CHARS long

This commit is contained in:
Steve Gravrock
2017-12-12 09:53:24 -08:00
parent c74af1d900
commit 86a38fceb9
4 changed files with 57 additions and 2 deletions

View File

@@ -92,6 +92,7 @@ getJasmineRequireObj().pp = function(j$) {
function StringPrettyPrinter() {
PrettyPrinter.call(this);
this.length = 0;
this.stringParts = [];
}
@@ -235,9 +236,22 @@ getJasmineRequireObj().pp = function(j$) {
};
StringPrettyPrinter.prototype.append = function(value) {
this.stringParts.push(value);
if (this.length < j$.MAX_PRETTY_PRINT_CHARS) {
value = truncate(value, j$.MAX_PRETTY_PRINT_CHARS - this.length);
this.length += value.length;
this.stringParts.push(value);
}
};
function truncate(s, maxlen) {
if (s.length <= maxlen) {
return s;
}
s = s.substring(0, maxlen - 4);
return s + ' ...';
}
function keys(obj, isArray) {
var allKeys = Object.keys ? Object.keys(obj) :
(function(o) {

View File

@@ -16,6 +16,12 @@ getJasmineRequireObj().base = function(j$, jasmineGlobal) {
* @name jasmine.MAX_PRETTY_PRINT_ARRAY_LENGTH
*/
j$.MAX_PRETTY_PRINT_ARRAY_LENGTH = 50;
/**
* Maximum number of charasters to display when pretty printing objects.
* Characters past this number will be ellipised.
* @name jasmine.MAX_PRETTY_PRINT_CHARS
*/
j$.MAX_PRETTY_PRINT_CHARS = 1000;
/**
* Default number of milliseconds Jasmine will wait for an asynchronous spec to complete.
* @name jasmine.DEFAULT_TIMEOUT_INTERVAL