mirror of
				https://github.com/node-red/node-red.git
				synced 2025-03-01 10:36:34 +00:00 
			
		
		
		
	Merge pull request #1809 from node-red-hitachi/0.19-fix-tests-for-trigger-node
Add multiple persistable store tests for trigger node
This commit is contained in:
		@@ -24,17 +24,24 @@ var RED = require("../../../../red/red.js");
 | 
				
			|||||||
describe('trigger node', function() {
 | 
					describe('trigger node', function() {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    beforeEach(function(done) {
 | 
					    beforeEach(function(done) {
 | 
				
			||||||
 | 
					        helper.startServer(done);
 | 
				
			||||||
 | 
					    });
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    function initContext(done) {
 | 
				
			||||||
        Context.init({
 | 
					        Context.init({
 | 
				
			||||||
            contextStorage: {
 | 
					            contextStorage: {
 | 
				
			||||||
                memory: {
 | 
					                memory0: {
 | 
				
			||||||
 | 
					                    module: "memory"
 | 
				
			||||||
 | 
					                },
 | 
				
			||||||
 | 
					                memory1: {
 | 
				
			||||||
                    module: "memory"
 | 
					                    module: "memory"
 | 
				
			||||||
                }
 | 
					                }
 | 
				
			||||||
            }
 | 
					            }
 | 
				
			||||||
        });
 | 
					        });
 | 
				
			||||||
        Context.load().then(function () {
 | 
					        Context.load().then(function () {
 | 
				
			||||||
            helper.startServer(done);
 | 
					            done();
 | 
				
			||||||
        });
 | 
					        });
 | 
				
			||||||
    });
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    afterEach(function(done) {
 | 
					    afterEach(function(done) {
 | 
				
			||||||
        helper.unload().then(function () {
 | 
					        helper.unload().then(function () {
 | 
				
			||||||
@@ -329,29 +336,155 @@ describe('trigger node', function() {
 | 
				
			|||||||
    });
 | 
					    });
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    it('should be able to return things from persistable flow and global context variables', function (done) {
 | 
					    it('should be able to return things from persistable flow and global context variables', function (done) {
 | 
				
			||||||
        var flow = [{"id": "n1", "type": "trigger", "name": "triggerNode", "op1": "#:(memory)::foo", "op1type": "flow",
 | 
					        var flow = [{"id": "n1", "type": "trigger", "name": "triggerNode", "op1": "#:(memory0)::foo", "op1type": "flow",
 | 
				
			||||||
                     "op2": "#:(memory)::bar", "op2type": "global", "duration": "20", "wires": [["n2"]], "z": "flow" },
 | 
					                     "op2": "#:(memory0)::bar", "op2type": "global", "duration": "20", "wires": [["n2"]], "z": "flow" },
 | 
				
			||||||
                    {"id": "n2", "type": "helper"}];
 | 
					                    {"id": "n2", "type": "helper"}];
 | 
				
			||||||
        helper.load(triggerNode, flow, function () {
 | 
					        helper.load(triggerNode, flow, function () {
 | 
				
			||||||
            var n1 = helper.getNode("n1");
 | 
					            initContext(function () {
 | 
				
			||||||
            var n2 = helper.getNode("n2");
 | 
					                var n1 = helper.getNode("n1");
 | 
				
			||||||
            var c = 0;
 | 
					                var n2 = helper.getNode("n2");
 | 
				
			||||||
            n2.on("input", function (msg) {
 | 
					                var c = 0;
 | 
				
			||||||
                try {
 | 
					                n2.on("input", function (msg) {
 | 
				
			||||||
                    if (c === 0) {
 | 
					                    try {
 | 
				
			||||||
                        msg.should.have.a.property("payload", "foo");
 | 
					                        if (c === 0) {
 | 
				
			||||||
                        c += 1;
 | 
					                            msg.should.have.a.property("payload", "foo");
 | 
				
			||||||
                    } else {
 | 
					                            c += 1;
 | 
				
			||||||
                        msg.should.have.a.property("payload", "bar");
 | 
					                        } else {
 | 
				
			||||||
                        done();
 | 
					                            msg.should.have.a.property("payload", "bar");
 | 
				
			||||||
 | 
					                            done();
 | 
				
			||||||
 | 
					                        }
 | 
				
			||||||
 | 
					                    } catch (err) {
 | 
				
			||||||
 | 
					                        done(err);
 | 
				
			||||||
                    }
 | 
					                    }
 | 
				
			||||||
                } catch (err) {
 | 
					                });
 | 
				
			||||||
                    done(err);
 | 
					                var context = n1.context();
 | 
				
			||||||
                }
 | 
					                var flow = context.flow;
 | 
				
			||||||
 | 
					                var global = context.global;
 | 
				
			||||||
 | 
					                flow.set("foo", "foo", "memory0", function (err) {
 | 
				
			||||||
 | 
					                    global.set("bar", "bar", "memory0", function (err) {
 | 
				
			||||||
 | 
					                        n1.emit("input", { payload: null });
 | 
				
			||||||
 | 
					                    });
 | 
				
			||||||
 | 
					                });
 | 
				
			||||||
 | 
					            });
 | 
				
			||||||
 | 
					        });
 | 
				
			||||||
 | 
					    });
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    it('should be able to return things from multiple persistable global context variables', function (done) {
 | 
				
			||||||
 | 
					        var flow = [{"id": "n1", "z": "flow", "type": "trigger",
 | 
				
			||||||
 | 
					                     "duration": "20", "wires": [["n2"]],
 | 
				
			||||||
 | 
					                     "op1": "#:(memory0)::val", "op1type": "global",
 | 
				
			||||||
 | 
					                     "op2": "#:(memory1)::val", "op2type": "global"
 | 
				
			||||||
 | 
					                    },
 | 
				
			||||||
 | 
					                    {"id": "n2", "type": "helper"}];
 | 
				
			||||||
 | 
					        helper.load(triggerNode, flow, function () {
 | 
				
			||||||
 | 
					            initContext(function () {
 | 
				
			||||||
 | 
					                var n1 = helper.getNode("n1");
 | 
				
			||||||
 | 
					                var n2 = helper.getNode("n2");
 | 
				
			||||||
 | 
					                var count = 0;
 | 
				
			||||||
 | 
					                n2.on("input", function (msg) {
 | 
				
			||||||
 | 
					                    try {
 | 
				
			||||||
 | 
					                        if (count === 0) {
 | 
				
			||||||
 | 
					                            msg.should.have.a.property("payload", "foo");
 | 
				
			||||||
 | 
					                        }
 | 
				
			||||||
 | 
					                        else {
 | 
				
			||||||
 | 
					                            msg.should.have.a.property("payload", "bar");
 | 
				
			||||||
 | 
					                        }
 | 
				
			||||||
 | 
					                        count++;
 | 
				
			||||||
 | 
					                        if (count === 1) {
 | 
				
			||||||
 | 
					                            done();
 | 
				
			||||||
 | 
					                        }
 | 
				
			||||||
 | 
					                    }
 | 
				
			||||||
 | 
					                    catch (err) {
 | 
				
			||||||
 | 
					                        done(err);
 | 
				
			||||||
 | 
					                    }
 | 
				
			||||||
 | 
					                });
 | 
				
			||||||
 | 
					                var global = n1.context().global;
 | 
				
			||||||
 | 
					                global.set("val", "foo", "memory0", function (err) {
 | 
				
			||||||
 | 
					                    global.set("val", "bar", "memory1", function (err) {
 | 
				
			||||||
 | 
					                        n1.emit("input", { payload: null });
 | 
				
			||||||
 | 
					                    });
 | 
				
			||||||
 | 
					                });
 | 
				
			||||||
 | 
					            });
 | 
				
			||||||
 | 
					        });
 | 
				
			||||||
 | 
					    });
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    it('should be able to return things from multiple persistable flow context variables', function (done) {
 | 
				
			||||||
 | 
					        var flow = [{"id": "n1", "z": "flow", "type": "trigger",
 | 
				
			||||||
 | 
					                     "duration": "20", "wires": [["n2"]],
 | 
				
			||||||
 | 
					                     "op1": "#:(memory0)::val", "op1type": "flow",
 | 
				
			||||||
 | 
					                     "op2": "#:(memory1)::val", "op2type": "flow"
 | 
				
			||||||
 | 
					                    },
 | 
				
			||||||
 | 
					                    {"id": "n2", "type": "helper"}];
 | 
				
			||||||
 | 
					        helper.load(triggerNode, flow, function () {
 | 
				
			||||||
 | 
					            initContext(function () {
 | 
				
			||||||
 | 
					                var n1 = helper.getNode("n1");
 | 
				
			||||||
 | 
					                var n2 = helper.getNode("n2");
 | 
				
			||||||
 | 
					                var count = 0;
 | 
				
			||||||
 | 
					                n2.on("input", function (msg) {
 | 
				
			||||||
 | 
					                    try {
 | 
				
			||||||
 | 
					                        if (count === 0) {
 | 
				
			||||||
 | 
					                            msg.should.have.a.property("payload", "foo");
 | 
				
			||||||
 | 
					                        }
 | 
				
			||||||
 | 
					                        else {
 | 
				
			||||||
 | 
					                            msg.should.have.a.property("payload", "bar");
 | 
				
			||||||
 | 
					                        }
 | 
				
			||||||
 | 
					                        count++;
 | 
				
			||||||
 | 
					                        if (count === 1) {
 | 
				
			||||||
 | 
					                            done();
 | 
				
			||||||
 | 
					                        }
 | 
				
			||||||
 | 
					                    }
 | 
				
			||||||
 | 
					                    catch (err) {
 | 
				
			||||||
 | 
					                        done(err);
 | 
				
			||||||
 | 
					                    }
 | 
				
			||||||
 | 
					                });
 | 
				
			||||||
 | 
					                var flow = n1.context().flow;
 | 
				
			||||||
 | 
					                flow.set("val", "foo", "memory0", function (err) {
 | 
				
			||||||
 | 
					                    flow.set("val", "bar", "memory1", function (err) {
 | 
				
			||||||
 | 
					                        n1.emit("input", { payload: null });
 | 
				
			||||||
 | 
					                    });
 | 
				
			||||||
 | 
					                });
 | 
				
			||||||
 | 
					            });
 | 
				
			||||||
 | 
					        });
 | 
				
			||||||
 | 
					    });
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    it('should be able to return things from multiple persistable flow & global context variables', function (done) {
 | 
				
			||||||
 | 
					        var flow = [{"id": "n1", "z": "flow", "type": "trigger",
 | 
				
			||||||
 | 
					                     "duration": "20", "wires": [["n2"]],
 | 
				
			||||||
 | 
					                     "op1": "#:(memory0)::val", "op1type": "flow",
 | 
				
			||||||
 | 
					                     "op2": "#:(memory1)::val", "op2type": "global"
 | 
				
			||||||
 | 
					                    },
 | 
				
			||||||
 | 
					                    {"id": "n2", "type": "helper"}];
 | 
				
			||||||
 | 
					        helper.load(triggerNode, flow, function () {
 | 
				
			||||||
 | 
					            initContext(function () {
 | 
				
			||||||
 | 
					                var n1 = helper.getNode("n1");
 | 
				
			||||||
 | 
					                var n2 = helper.getNode("n2");
 | 
				
			||||||
 | 
					                var count = 0;
 | 
				
			||||||
 | 
					                n2.on("input", function (msg) {
 | 
				
			||||||
 | 
					                    try {
 | 
				
			||||||
 | 
					                        if (count === 0) {
 | 
				
			||||||
 | 
					                            msg.should.have.a.property("payload", "foo");
 | 
				
			||||||
 | 
					                        }
 | 
				
			||||||
 | 
					                        else {
 | 
				
			||||||
 | 
					                            msg.should.have.a.property("payload", "bar");
 | 
				
			||||||
 | 
					                        }
 | 
				
			||||||
 | 
					                        count++;
 | 
				
			||||||
 | 
					                        if (count === 1) {
 | 
				
			||||||
 | 
					                            done();
 | 
				
			||||||
 | 
					                        }
 | 
				
			||||||
 | 
					                    }
 | 
				
			||||||
 | 
					                    catch (err) {
 | 
				
			||||||
 | 
					                        done(err);
 | 
				
			||||||
 | 
					                    }
 | 
				
			||||||
 | 
					                });
 | 
				
			||||||
 | 
					                var context = n1.context();
 | 
				
			||||||
 | 
					                var flow = context.flow;
 | 
				
			||||||
 | 
					                var global = context.flow;
 | 
				
			||||||
 | 
					                flow.set("val", "foo", "memory0", function (err) {
 | 
				
			||||||
 | 
					                    global.set("val", "bar", "memory1", function (err) {
 | 
				
			||||||
 | 
					                        n1.emit("input", { payload: null });
 | 
				
			||||||
 | 
					                    });
 | 
				
			||||||
 | 
					                });
 | 
				
			||||||
            });
 | 
					            });
 | 
				
			||||||
            n1.context().flow.set("foo", "foo");
 | 
					 | 
				
			||||||
            n1.context().global.set("bar", "bar");
 | 
					 | 
				
			||||||
            n1.emit("input", { payload: null });
 | 
					 | 
				
			||||||
        });
 | 
					        });
 | 
				
			||||||
    });
 | 
					    });
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user