1
0
mirror of https://github.com/node-red/node-red.git synced 2023-10-10 13:36:53 +02:00

Merge pull request #3659 from Steve-Mcl/backport-3624

fix buffer parse error message of evaluateNodeProperty (backports #3624 for v2.x)
This commit is contained in:
Nick O'Leary 2022-06-16 11:14:13 +01:00 committed by GitHub
commit facb6143c3
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 19 additions and 1 deletions

View File

@ -641,7 +641,12 @@ function evaluateNodeProperty(value, type, node, msg, callback) {
result = Date.now(); result = Date.now();
} else if (type === 'bin') { } else if (type === 'bin') {
var data = JSON.parse(value); var data = JSON.parse(value);
result = Buffer.from(data); if (Array.isArray(data) || (typeof(data) === "string")) {
result = Buffer.from(data);
}
else {
throw createError("INVALID_BUFFER_DATA", "Not string or array");
}
} else if (type === 'msg' && msg) { } else if (type === 'msg' && msg) {
try { try {
result = getMessageProperty(msg,value); result = getMessageProperty(msg,value);

View File

@ -388,6 +388,19 @@ describe("@node-red/util/util", function() {
result[0].should.eql(1); result[0].should.eql(1);
result[1].should.eql(2); result[1].should.eql(2);
}); });
it('throws an error if buffer data is not array or string', function (done) {
try {
var result = util.evaluateNodeProperty('12','bin');
done("should throw an error");
} catch (err) {
if (err.code === "INVALID_BUFFER_DATA") {
done();
}
else {
done("should throw an error");
}
}
});
it('returns msg property',function() { it('returns msg property',function() {
var result = util.evaluateNodeProperty('foo.bar','msg',{},{foo:{bar:"123"}}); var result = util.evaluateNodeProperty('foo.bar','msg',{},{foo:{bar:"123"}});
result.should.eql("123"); result.should.eql("123");