Skip to content

Commit

Permalink
Flag a node as removed when it is disabled
Browse files Browse the repository at this point in the history
  • Loading branch information
knolleary committed Jun 8, 2020
1 parent d28b8b5 commit fe4ef35
Show file tree
Hide file tree
Showing 2 changed files with 27 additions and 1 deletion.
Expand Up @@ -263,7 +263,7 @@ module.exports = {
}
}
}
// This node has been removed
// This node has been removed or its flow disabled
if (removed[node.z] || !newConfig.allNodes.hasOwnProperty(id)) {
removed[id] = node;
// Mark the container as changed
Expand All @@ -278,6 +278,11 @@ module.exports = {
if (added[node.z]) {
added[id] = node;
} else {
var currentState = node.d;
var newState = newConfig.allNodes[id].d;
if (!currentState && newState) {
removed[id] = node;
}
// This node has a material configuration change
if (diffNodes(node,newConfig.allNodes[id]) || newConfig.allNodes[id].credentials) {
changed[id] = newConfig.allNodes[id];
Expand Down
21 changes: 21 additions & 0 deletions test/unit/@node-red/runtime/lib/nodes/flows/util_spec.js
Expand Up @@ -777,5 +777,26 @@ describe('flows/util', function() {
diffResult.removed.sort().should.eql(["1","2"]);
diffResult.rewired.should.have.length(0);
});

it('marks a node as removed when its state changes enabled to disabled', function() {
var config = [{id:"1",type:"tab",disabled:false,label:"fred"},{id:"2",type:"test",bar:"b",wires:[["1"]],z:"1"},{id:"3",type:"test"}];
var newConfig = clone(config);
newConfig[1].d = true;

var originalConfig = flowUtil.parseConfig(config);
var changedConfig = flowUtil.parseConfig(newConfig);

originalConfig.missingTypes.should.have.length(0);

var diffResult = flowUtil.diffConfigs(originalConfig,changedConfig);

diffResult.added.should.have.length(0);
diffResult.changed.should.have.length(2);
diffResult.changed.sort().should.eql(["1","2"]);
diffResult.removed.should.have.length(1);
diffResult.removed.sort().should.eql(["2"]);
diffResult.rewired.should.have.length(0);
});

});
});

0 comments on commit fe4ef35

Please sign in to comment.