added sending params object in handleStatus in comms.js and using params object in status event in red.js. added test for handleStatusEvent with params for comms.js

pull/4428/head
Magdalena Lorentz 2023-11-08 11:16:09 +01:00
parent 5b5b06cc06
commit 3c67d7b9a7
3 changed files with 26 additions and 1 deletions

View File

@ -517,7 +517,7 @@ var RED = (function() {
var node = RED.nodes.node(parts[1]);
if (node) {
if (msg.hasOwnProperty("text") && msg.text !== null && /^[@a-zA-Z]/.test(msg.text)) {
msg.text = node._(msg.text.toString(),{defaultValue:msg.text.toString()});
msg.text = node._(msg.text.toString(),{defaultValue:msg.text.toString(), ...(msg.params || {})});
}
node.status = msg;
node.dirtyStatus = true;

View File

@ -51,6 +51,10 @@ function handleStatusEvent(event) {
fill: event.status.fill,
shape: event.status.shape
};
const params = event.status.params;
if(params && typeof params === "object" && !Array.isArray(params)){
status.params = params;
}
publish("status/"+event.id,status,true);
}
}

View File

@ -286,6 +286,27 @@ describe("runtime-api/comms", function() {
}).catch(done);
})
it('retains non-blank status message with parameters', function(done) {
eventHandlers['node-status']({
id: "node1234",
status: {
text: "path.to.status.locale",
params: {
myParam0: "test"
}
}
});
messages.should.have.length(0);
comms.addConnection({client: clientConnection}).then(function() {
return comms.subscribe({client: clientConnection, topic: "status/#"}).then(function() {
messages.should.have.length(1);
messages[0].should.have.property("topic","status/node1234");
messages[0].should.have.property("data",{text:"path.to.status.locale", fill: undefined, shape: undefined, params: { myParam0: "test"} });
done();
});
}).catch(done);
});
it('retained messages get cleared',function(done) {
eventHandlers['comms']({
topic: "my-event",