1
0
mirror of https://github.com/node-red/node-red.git synced 2023-10-10 13:36:53 +02:00

Merge pull request #1803 from kazuhitoyokoi/0.19-addtestcases

Add test cases of persistable context for trigger node
This commit is contained in:
Nick O'Leary 2018-07-13 11:59:40 +01:00 committed by GitHub
commit 24505ee4f5
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 64 additions and 19 deletions

View File

@ -21,8 +21,7 @@ var helper = require("node-red-node-test-helper");
describe('inject node', function() { describe('inject node', function() {
before(function(done) { beforeEach(function(done) {
helper.startServer(done);
Context.init({ Context.init({
contextStorage: { contextStorage: {
memory: { memory: {
@ -30,17 +29,19 @@ describe('inject node', function() {
} }
} }
}); });
Context.load(); Context.load().then(function () {
helper.startServer(done);
});
}); });
after(function(done) { afterEach(function(done) {
helper.unload().then(function () {
return Context.clean({allNodes: {}});
}).then(function () {
return Context.close();
}).then(function () {
helper.stopServer(done); helper.stopServer(done);
}); });
afterEach(function() {
helper.unload();
Context.clean({allNodes: {}});
Context.close();
}); });
it('sets the value of flow context property', function (done) { it('sets the value of flow context property', function (done) {

View File

@ -18,16 +18,30 @@ var should = require("should");
var sinon = require("sinon"); var sinon = require("sinon");
var helper = require("node-red-node-test-helper"); var helper = require("node-red-node-test-helper");
var triggerNode = require("../../../../nodes/core/core/89-trigger.js"); var triggerNode = require("../../../../nodes/core/core/89-trigger.js");
var Context = require("../../../../red/runtime/nodes/context");
var RED = require("../../../../red/red.js"); var RED = require("../../../../red/red.js");
describe('trigger node', function() { describe('trigger node', function() {
beforeEach(function(done) { beforeEach(function(done) {
Context.init({
contextStorage: {
memory: {
module: "memory"
}
}
});
Context.load().then(function () {
helper.startServer(done); helper.startServer(done);
}); });
});
afterEach(function(done) { afterEach(function(done) {
helper.unload().then(function() { helper.unload().then(function () {
return Context.clean({allNodes: {}});
}).then(function () {
return Context.close();
}).then(function () {
helper.stopServer(done); helper.stopServer(done);
}); });
}); });
@ -312,7 +326,33 @@ describe('trigger node', function() {
}); });
n1.emit("input", {payload:null}); n1.emit("input", {payload:null});
}); });
});
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",
"op2": "#:(memory)::bar", "op2type": "global", "duration": "20", "wires": [["n2"]], "z": "flow" },
{"id": "n2", "type": "helper"}];
helper.load(triggerNode, flow, function () {
var n1 = helper.getNode("n1");
var n2 = helper.getNode("n2");
var c = 0;
n2.on("input", function (msg) {
try {
if (c === 0) {
msg.should.have.a.property("payload", "foo");
c += 1;
} else {
msg.should.have.a.property("payload", "bar");
done();
}
} catch (err) {
done(err);
}
});
n1.context().flow.set("foo", "foo");
n1.context().global.set("bar", "bar");
n1.emit("input", { payload: null });
});
}); });
it('should be able to not output anything on first trigger', function(done) { it('should be able to not output anything on first trigger', function(done) {

View File

@ -24,7 +24,6 @@ var helper = require("node-red-node-test-helper");
describe('change Node', function() { describe('change Node', function() {
beforeEach(function(done) { beforeEach(function(done) {
helper.startServer(done);
Context.init({ Context.init({
contextStorage: { contextStorage: {
memory: { memory: {
@ -32,14 +31,19 @@ describe('change Node', function() {
} }
} }
}); });
Context.load(); Context.load().then(function () {
helper.startServer(done);
});
}); });
afterEach(function(done) { afterEach(function(done) {
helper.unload(); helper.unload().then(function () {
return Context.clean({allNodes: {}});
}).then(function () {
return Context.close();
}).then(function () {
helper.stopServer(done); helper.stopServer(done);
Context.clean({allNodes:{}}); });
Context.close();
}); });
it('should load node with defaults', function(done) { it('should load node with defaults', function(done) {