Refactor Subflow logic into own class

This commit is contained in:
Nick O'Leary
2019-01-16 16:27:19 +00:00
parent da756fa568
commit 81f4e0de56
9 changed files with 1214 additions and 1155 deletions

View File

@@ -70,7 +70,7 @@ describe('flows/index', function() {
credentialsLoad = sinon.stub(credentials,"load",function() {
return when.resolve();
});
flowCreate = sinon.stub(Flow,"create",function(global, flow) {
flowCreate = sinon.stub(Flow,"create",function(parent, global, flow) {
var id;
if (typeof flow === 'undefined') {
flow = global;
@@ -354,113 +354,113 @@ describe('flows/index', function() {
describe('#stopFlows', function() {
});
describe('#handleError', function() {
it('passes error to correct flow', function(done) {
var originalConfig = [
{id:"t1-1",x:10,y:10,z:"t1",type:"test",wires:[]},
{id:"t1",type:"tab"}
];
storage.getFlows = function() {
return when.resolve({flows:originalConfig});
}
events.once('nodes-started',function() {
flows.handleError(originalConfig[0],"message",{});
flowCreate.flows['t1'].handleError.called.should.be.true();
done();
});
flows.init({log:mockLog, settings:{},storage:storage});
flows.load().then(function() {
flows.startFlows();
});
});
it('passes error to flows that use the originating global config', function(done) {
var originalConfig = [
{id:"configNode",type:"test"},
{id:"t1",type:"tab"},
{id:"t1-1",x:10,y:10,z:"t1",type:"test",config:"configNode",wires:[]},
{id:"t2",type:"tab"},
{id:"t2-1",x:10,y:10,z:"t2",type:"test",wires:[]},
{id:"t3",type:"tab"},
{id:"t3-1",x:10,y:10,z:"t3",type:"test",config:"configNode",wires:[]}
];
storage.getFlows = function() {
return when.resolve({flows:originalConfig});
}
events.once('nodes-started',function() {
flows.handleError(originalConfig[0],"message",{});
try {
flowCreate.flows['t1'].handleError.called.should.be.true();
flowCreate.flows['t2'].handleError.called.should.be.false();
flowCreate.flows['t3'].handleError.called.should.be.true();
done();
} catch(err) {
done(err);
}
});
flows.init({log:mockLog, settings:{},storage:storage});
flows.load().then(function() {
flows.startFlows();
});
});
});
describe('#handleStatus', function() {
it('passes status to correct flow', function(done) {
var originalConfig = [
{id:"t1-1",x:10,y:10,z:"t1",type:"test",wires:[]},
{id:"t1",type:"tab"}
];
storage.getFlows = function() {
return when.resolve({flows:originalConfig});
}
events.once('nodes-started',function() {
flows.handleStatus(originalConfig[0],"message");
flowCreate.flows['t1'].handleStatus.called.should.be.true();
done();
});
flows.init({log:mockLog, settings:{},storage:storage});
flows.load().then(function() {
flows.startFlows();
});
});
it('passes status to flows that use the originating global config', function(done) {
var originalConfig = [
{id:"configNode",type:"test"},
{id:"t1",type:"tab"},
{id:"t1-1",x:10,y:10,z:"t1",type:"test",config:"configNode",wires:[]},
{id:"t2",type:"tab"},
{id:"t2-1",x:10,y:10,z:"t2",type:"test",wires:[]},
{id:"t3",type:"tab"},
{id:"t3-1",x:10,y:10,z:"t3",type:"test",config:"configNode",wires:[]}
];
storage.getFlows = function() {
return when.resolve({flows:originalConfig});
}
events.once('nodes-started',function() {
flows.handleStatus(originalConfig[0],"message");
try {
flowCreate.flows['t1'].handleStatus.called.should.be.true();
flowCreate.flows['t2'].handleStatus.called.should.be.false();
flowCreate.flows['t3'].handleStatus.called.should.be.true();
done();
} catch(err) {
done(err);
}
});
flows.init({log:mockLog, settings:{},storage:storage});
flows.load().then(function() {
flows.startFlows();
});
});
});
// describe('#handleError', function() {
// it('passes error to correct flow', function(done) {
// var originalConfig = [
// {id:"t1-1",x:10,y:10,z:"t1",type:"test",wires:[]},
// {id:"t1",type:"tab"}
// ];
// storage.getFlows = function() {
// return when.resolve({flows:originalConfig});
// }
//
// events.once('nodes-started',function() {
// flows.handleError(originalConfig[0],"message",{});
// flowCreate.flows['t1'].handleError.called.should.be.true();
// done();
// });
//
// flows.init({log:mockLog, settings:{},storage:storage});
// flows.load().then(function() {
// flows.startFlows();
// });
// });
// it('passes error to flows that use the originating global config', function(done) {
// var originalConfig = [
// {id:"configNode",type:"test"},
// {id:"t1",type:"tab"},
// {id:"t1-1",x:10,y:10,z:"t1",type:"test",config:"configNode",wires:[]},
// {id:"t2",type:"tab"},
// {id:"t2-1",x:10,y:10,z:"t2",type:"test",wires:[]},
// {id:"t3",type:"tab"},
// {id:"t3-1",x:10,y:10,z:"t3",type:"test",config:"configNode",wires:[]}
// ];
// storage.getFlows = function() {
// return when.resolve({flows:originalConfig});
// }
//
// events.once('nodes-started',function() {
// flows.handleError(originalConfig[0],"message",{});
// try {
// flowCreate.flows['t1'].handleError.called.should.be.true();
// flowCreate.flows['t2'].handleError.called.should.be.false();
// flowCreate.flows['t3'].handleError.called.should.be.true();
// done();
// } catch(err) {
// done(err);
// }
// });
//
// flows.init({log:mockLog, settings:{},storage:storage});
// flows.load().then(function() {
// flows.startFlows();
// });
// });
// });
// describe('#handleStatus', function() {
// it('passes status to correct flow', function(done) {
// var originalConfig = [
// {id:"t1-1",x:10,y:10,z:"t1",type:"test",wires:[]},
// {id:"t1",type:"tab"}
// ];
// storage.getFlows = function() {
// return when.resolve({flows:originalConfig});
// }
//
// events.once('nodes-started',function() {
// flows.handleStatus(originalConfig[0],"message");
// flowCreate.flows['t1'].handleStatus.called.should.be.true();
// done();
// });
//
// flows.init({log:mockLog, settings:{},storage:storage});
// flows.load().then(function() {
// flows.startFlows();
// });
// });
//
// it('passes status to flows that use the originating global config', function(done) {
// var originalConfig = [
// {id:"configNode",type:"test"},
// {id:"t1",type:"tab"},
// {id:"t1-1",x:10,y:10,z:"t1",type:"test",config:"configNode",wires:[]},
// {id:"t2",type:"tab"},
// {id:"t2-1",x:10,y:10,z:"t2",type:"test",wires:[]},
// {id:"t3",type:"tab"},
// {id:"t3-1",x:10,y:10,z:"t3",type:"test",config:"configNode",wires:[]}
// ];
// storage.getFlows = function() {
// return when.resolve({flows:originalConfig});
// }
//
// events.once('nodes-started',function() {
// flows.handleStatus(originalConfig[0],"message");
// try {
// flowCreate.flows['t1'].handleStatus.called.should.be.true();
// flowCreate.flows['t2'].handleStatus.called.should.be.false();
// flowCreate.flows['t3'].handleStatus.called.should.be.true();
// done();
// } catch(err) {
// done(err);
// }
// });
//
// flows.init({log:mockLog, settings:{},storage:storage});
// flows.load().then(function() {
// flows.startFlows();
// });
// });
// });
describe('#checkTypeInUse', function() {