mirror of
https://github.com/node-red/node-red.git
synced 2023-10-10 13:36:53 +02:00
add util.inspect data to 'type not printable'. Add test to cover these lines (no existing test).
This commit is contained in:
parent
d46531def8
commit
74d760a46d
@ -755,7 +755,7 @@ function encodeObject(msg,opts) {
|
|||||||
}," ");
|
}," ");
|
||||||
} else {
|
} else {
|
||||||
try { msg.msg = msg.msg.toString(); }
|
try { msg.msg = msg.msg.toString(); }
|
||||||
catch(e) { msg.msg = "[Type not printable]"; }
|
catch(e) { msg.msg = "[Type not printable]" + util.inspect(msg.msg); }
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
} else if (msgType === "function") {
|
} else if (msgType === "function") {
|
||||||
|
@ -822,6 +822,53 @@ describe("@node-red/util/util", function() {
|
|||||||
success.should.eql(1);
|
success.should.eql(1);
|
||||||
done();
|
done();
|
||||||
});
|
});
|
||||||
|
it('very large object which fails to serialise should be truncated', function(done) {
|
||||||
|
var msg = {
|
||||||
|
msg: {
|
||||||
|
obj:{
|
||||||
|
big:"",
|
||||||
|
cantserialise:{
|
||||||
|
message:'this will not be displayed',
|
||||||
|
toJSON: function(val) {
|
||||||
|
throw new Error('this exception should have been caught');
|
||||||
|
return 'should not display because we threw first';
|
||||||
|
},
|
||||||
|
},
|
||||||
|
canserialise:{
|
||||||
|
message:'this should be displayed',
|
||||||
|
}
|
||||||
|
},
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
for (var i = 0; i < 1000; i++) {
|
||||||
|
msg.msg.obj.big += 'some more string ';
|
||||||
|
}
|
||||||
|
|
||||||
|
var result = util.encodeObject(msg);
|
||||||
|
result.format.should.eql("error");
|
||||||
|
var resultJson = JSON.parse(result.msg);
|
||||||
|
var success = (resultJson.message.length <= 1000);
|
||||||
|
success.should.eql(true);
|
||||||
|
done();
|
||||||
|
});
|
||||||
|
it('test bad toString', function(done) {
|
||||||
|
var msg = {
|
||||||
|
msg: {
|
||||||
|
mystrangeobj:"hello",
|
||||||
|
},
|
||||||
|
};
|
||||||
|
msg.msg.toString = function(){
|
||||||
|
throw new Error('Exception in toString - should have been caught');
|
||||||
|
}
|
||||||
|
msg.msg.constructor = { name: "strangeobj" };
|
||||||
|
|
||||||
|
var result = util.encodeObject(msg);
|
||||||
|
var success = (result.msg.indexOf('[Type not printable]') >= 0);
|
||||||
|
success.should.eql(true);
|
||||||
|
done();
|
||||||
|
});
|
||||||
|
|
||||||
|
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
Loading…
Reference in New Issue
Block a user