mirror of
https://github.com/node-red/node-red.git
synced 2023-10-10 13:36:53 +02:00
Fix tests for externalModules component
This commit is contained in:
parent
a94c19a6cf
commit
e899d2d5b8
@ -106,7 +106,7 @@
|
|||||||
"marked": "1.2.7",
|
"marked": "1.2.7",
|
||||||
"minami": "1.2.3",
|
"minami": "1.2.3",
|
||||||
"mocha": "^5.2.0",
|
"mocha": "^5.2.0",
|
||||||
"node-red-node-test-helper": "^0.2.5",
|
"node-red-node-test-helper": "^0.2.7",
|
||||||
"node-sass": "^4.14.1",
|
"node-sass": "^4.14.1",
|
||||||
"nodemon": "2.0.6",
|
"nodemon": "2.0.6",
|
||||||
"should": "13.2.3",
|
"should": "13.2.3",
|
||||||
|
@ -40,7 +40,7 @@ describe('red/registry/index', function() {
|
|||||||
stubs.push(sinon.stub(loader,"init"));
|
stubs.push(sinon.stub(loader,"init"));
|
||||||
stubs.push(sinon.stub(typeRegistry,"init"));
|
stubs.push(sinon.stub(typeRegistry,"init"));
|
||||||
|
|
||||||
registry.init({});
|
registry.init({settings:{}});
|
||||||
installer.init.called.should.be.true();
|
installer.init.called.should.be.true();
|
||||||
loader.init.called.should.be.true();
|
loader.init.called.should.be.true();
|
||||||
typeRegistry.init.called.should.be.true();
|
typeRegistry.init.called.should.be.true();
|
||||||
|
@ -36,6 +36,7 @@ describe('flows/index', function() {
|
|||||||
|
|
||||||
var flowCreate;
|
var flowCreate;
|
||||||
var getType;
|
var getType;
|
||||||
|
var checkFlowDependencies;
|
||||||
|
|
||||||
var mockLog = {
|
var mockLog = {
|
||||||
log: sinon.stub(),
|
log: sinon.stub(),
|
||||||
@ -52,9 +53,16 @@ describe('flows/index', function() {
|
|||||||
getType = sinon.stub(typeRegistry,"get",function(type) {
|
getType = sinon.stub(typeRegistry,"get",function(type) {
|
||||||
return type.indexOf('missing') === -1;
|
return type.indexOf('missing') === -1;
|
||||||
});
|
});
|
||||||
|
checkFlowDependencies = sinon.stub(typeRegistry, "checkFlowDependencies", async function(flow) {
|
||||||
|
if (flow[0].id === "node-with-missing-modules") {
|
||||||
|
throw new Error("Missing module");
|
||||||
|
}
|
||||||
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
after(function() {
|
after(function() {
|
||||||
getType.restore();
|
getType.restore();
|
||||||
|
checkFlowDependencies.restore();
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|
||||||
@ -306,7 +314,7 @@ describe('flows/index', function() {
|
|||||||
|
|
||||||
flows.init({log:mockLog, settings:{},storage:storage});
|
flows.init({log:mockLog, settings:{},storage:storage});
|
||||||
flows.load().then(function() {
|
flows.load().then(function() {
|
||||||
flows.startFlows();
|
return flows.startFlows();
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
it('does not start if nodes missing', function(done) {
|
it('does not start if nodes missing', function(done) {
|
||||||
@ -321,9 +329,14 @@ describe('flows/index', function() {
|
|||||||
|
|
||||||
flows.init({log:mockLog, settings:{},storage:storage});
|
flows.init({log:mockLog, settings:{},storage:storage});
|
||||||
flows.load().then(function() {
|
flows.load().then(function() {
|
||||||
flows.startFlows();
|
return flows.startFlows();
|
||||||
flowCreate.called.should.be.false();
|
}).then(() => {
|
||||||
done();
|
try {
|
||||||
|
flowCreate.called.should.be.false();
|
||||||
|
done();
|
||||||
|
} catch(err) {
|
||||||
|
done(err);
|
||||||
|
}
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
@ -339,9 +352,9 @@ describe('flows/index', function() {
|
|||||||
}
|
}
|
||||||
flows.init({log:mockLog, settings:{},storage:storage});
|
flows.init({log:mockLog, settings:{},storage:storage});
|
||||||
flows.load().then(function() {
|
flows.load().then(function() {
|
||||||
flows.startFlows();
|
return flows.startFlows();
|
||||||
|
}).then(() => {
|
||||||
flowCreate.called.should.be.false();
|
flowCreate.called.should.be.false();
|
||||||
|
|
||||||
events.emit("type-registered","missing");
|
events.emit("type-registered","missing");
|
||||||
setTimeout(function() {
|
setTimeout(function() {
|
||||||
flowCreate.called.should.be.false();
|
flowCreate.called.should.be.false();
|
||||||
@ -354,7 +367,44 @@ describe('flows/index', function() {
|
|||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
|
it('does not start if external modules missing', function(done) {
|
||||||
|
var originalConfig = [
|
||||||
|
{id:"node-with-missing-modules",x:10,y:10,z:"t1",type:"test",wires:[]},
|
||||||
|
{id:"t1",type:"tab"}
|
||||||
|
];
|
||||||
|
|
||||||
|
storage.getFlows = function() {
|
||||||
|
return Promise.resolve({flows:originalConfig});
|
||||||
|
}
|
||||||
|
var receivedEvent = null;
|
||||||
|
var handleEvent = function(payload) {
|
||||||
|
receivedEvent = payload;
|
||||||
|
}
|
||||||
|
|
||||||
|
events.on("runtime-event",handleEvent);
|
||||||
|
|
||||||
|
//{id:"runtime-state",payload:{error:"missing-modules", type:"warning",text:"notification.warnings.missing-modules",modules:missingModules},retain:true});"
|
||||||
|
|
||||||
|
|
||||||
|
flows.init({log:mockLog, settings:{},storage:storage});
|
||||||
|
flows.load().then(flows.startFlows).then(() => {
|
||||||
|
events.removeListener("runtime-event",handleEvent);
|
||||||
|
try {
|
||||||
|
flowCreate.called.should.be.false();
|
||||||
|
receivedEvent.should.have.property('id','runtime-state');
|
||||||
|
receivedEvent.should.have.property('payload',
|
||||||
|
{ error: 'missing-modules',
|
||||||
|
type: 'warning',
|
||||||
|
text: 'notification.warnings.missing-modules',
|
||||||
|
modules: [] }
|
||||||
|
);
|
||||||
|
|
||||||
|
done();
|
||||||
|
}catch(err) {
|
||||||
|
done(err)
|
||||||
|
}
|
||||||
|
});
|
||||||
|
});
|
||||||
|
|
||||||
});
|
});
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user