mirror of
https://github.com/node-red/node-red.git
synced 2023-10-10 13:36:53 +02:00
Automatically adjust node deployment
This commit is contained in:
parent
4a081bf125
commit
c2aa9a5337
@ -21,12 +21,32 @@ var events = require("nr-test-utils").require("@node-red/runtime/lib/events.js")
|
||||
var palette = require("./palette_page");
|
||||
var nodeFactory = require("../nodes/nodefactory_page");
|
||||
|
||||
var flowLayout = {
|
||||
flowRightEnd : 600,
|
||||
widthInterval : 300,
|
||||
heightInterval : 80
|
||||
};
|
||||
|
||||
var previousX = -flowLayout.widthInterval;
|
||||
var previousY = 0;
|
||||
|
||||
function addNode(type, x, y) {
|
||||
var offsetX = x ? x : 0;
|
||||
var offsetY = y ? y : 0;
|
||||
if (x !== undefined) {
|
||||
previousX = x;
|
||||
if (y !== undefined) {
|
||||
previousY = y;
|
||||
}
|
||||
} else {
|
||||
if (previousX < flowLayout.flowRightEnd) {
|
||||
previousX = previousX + flowLayout.widthInterval;
|
||||
} else {
|
||||
previousX = 0;
|
||||
previousY = previousY + flowLayout.heightInterval;
|
||||
}
|
||||
}
|
||||
browser.moveToObject(palette.getId(type));
|
||||
browser.buttonDown();
|
||||
browser.moveToObject("#palette-search", offsetX + 300, offsetY + 100); // adjust to the top-left corner of workspace.
|
||||
browser.moveToObject("#palette-search", previousX + 300, previousY + 100); // adjust to the top-left corner of workspace.
|
||||
browser.buttonUp();
|
||||
// Last node is the one that has been created right now.
|
||||
var nodeElement = browser.elements('//*[@class="node nodegroup"][last()]');
|
||||
@ -55,8 +75,21 @@ function deploy() {
|
||||
browser.waitForText('#btn-deploy', 2000);
|
||||
}
|
||||
|
||||
function init(width, height) {
|
||||
deleteAllNodes();
|
||||
|
||||
if (width !== undefined) {
|
||||
flowLayout.widthInterval = width;
|
||||
}
|
||||
if (height !== undefined) {
|
||||
flowLayout.heightInterval = height;
|
||||
}
|
||||
previousX = -flowLayout.widthInterval;
|
||||
previousY = 0;
|
||||
}
|
||||
|
||||
module.exports = {
|
||||
addNode: addNode,
|
||||
deleteAllNodes: deleteAllNodes,
|
||||
deploy: deploy
|
||||
deploy: deploy,
|
||||
init: init
|
||||
};
|
||||
|
@ -22,11 +22,10 @@ var helper = require("../../editor_helper");
|
||||
var debugTab = require('../../pageobjects/editor/debugTab_page');
|
||||
var workspace = require('../../pageobjects/editor/workspace_page');
|
||||
|
||||
var nodeWidth = 200;
|
||||
|
||||
describe('Workspace', function() {
|
||||
beforeEach(function() {
|
||||
workspace.deleteAllNodes();
|
||||
workspace.init();
|
||||
});
|
||||
|
||||
before(function() {
|
||||
@ -43,7 +42,7 @@ describe('Workspace', function() {
|
||||
|
||||
it('should output a timestamp', function() {
|
||||
var injectNode = workspace.addNode("inject");
|
||||
var debugNode = workspace.addNode("debug", nodeWidth);
|
||||
var debugNode = workspace.addNode("debug");
|
||||
injectNode.connect(debugNode);
|
||||
|
||||
workspace.deploy();
|
||||
|
@ -20,14 +20,12 @@ var helper = require("../../editor_helper");
|
||||
var debugTab = require('../../pageobjects/editor/debugTab_page');
|
||||
var workspace = require('../../pageobjects/editor/workspace_page');
|
||||
|
||||
var nodeWidth = 200;
|
||||
var nodeHeight = 100;
|
||||
var httpNodeRoot = "/api";
|
||||
|
||||
// https://cookbook.nodered.org/
|
||||
describe('cookbook', function() {
|
||||
beforeEach(function() {
|
||||
workspace.deleteAllNodes();
|
||||
workspace.init();
|
||||
});
|
||||
|
||||
before(function() {
|
||||
@ -41,8 +39,8 @@ describe('cookbook', function() {
|
||||
describe('HTTP endpoints', function () {
|
||||
it('create an HTTP endpoint', function () {
|
||||
var httpinNode = workspace.addNode("httpin");
|
||||
var templateNode = workspace.addNode("template", nodeWidth);
|
||||
var httpResponseNode = workspace.addNode("httpResponse", nodeWidth * 2);
|
||||
var templateNode = workspace.addNode("template");
|
||||
var httpResponseNode = workspace.addNode("httpResponse");
|
||||
|
||||
httpinNode.edit();
|
||||
httpinNode.setMethod("get");
|
||||
@ -59,9 +57,9 @@ describe('cookbook', function() {
|
||||
templateNode.connect(httpResponseNode);
|
||||
|
||||
// The code for confirmation starts from here.
|
||||
var injectNode = workspace.addNode("inject", 0, nodeHeight);
|
||||
var httpRequestNode = workspace.addNode("httpRequest", nodeWidth, nodeHeight);
|
||||
var debugNode = workspace.addNode("debug", nodeWidth * 2, nodeHeight);
|
||||
var injectNode = workspace.addNode("inject");
|
||||
var httpRequestNode = workspace.addNode("httpRequest");
|
||||
var debugNode = workspace.addNode("debug");
|
||||
|
||||
httpRequestNode.edit();
|
||||
httpRequestNode.setUrl(helper.url() + httpNodeRoot + '/hello');
|
||||
@ -81,8 +79,8 @@ describe('cookbook', function() {
|
||||
|
||||
it('handle query parameters passed to an HTTP endpoint', function () {
|
||||
var httpinNode = workspace.addNode("httpin");
|
||||
var templateNode = workspace.addNode("template", nodeWidth);
|
||||
var httpResponseNode = workspace.addNode("httpResponse", nodeWidth * 2);
|
||||
var templateNode = workspace.addNode("template");
|
||||
var httpResponseNode = workspace.addNode("httpResponse");
|
||||
|
||||
httpinNode.edit();
|
||||
httpinNode.setMethod("get");
|
||||
@ -99,9 +97,9 @@ describe('cookbook', function() {
|
||||
templateNode.connect(httpResponseNode);
|
||||
|
||||
// The code for confirmation starts from here.
|
||||
var injectNode = workspace.addNode("inject", 0, nodeHeight);
|
||||
var httpRequestNode = workspace.addNode("httpRequest", nodeWidth, nodeHeight);
|
||||
var debugNode = workspace.addNode("debug", nodeWidth * 2, nodeHeight);
|
||||
var injectNode = workspace.addNode("inject");
|
||||
var httpRequestNode = workspace.addNode("httpRequest");
|
||||
var debugNode = workspace.addNode("debug");
|
||||
|
||||
httpRequestNode.edit();
|
||||
httpRequestNode.setUrl(helper.url() + httpNodeRoot + '/hello-query?name=Nick');
|
||||
@ -121,8 +119,8 @@ describe('cookbook', function() {
|
||||
|
||||
it('handle url parameters in an HTTP endpoint', function () {
|
||||
var httpinNode = workspace.addNode("httpin");
|
||||
var templateNode = workspace.addNode("template", nodeWidth * 2);
|
||||
var httpResponseNode = workspace.addNode("httpResponse", nodeWidth * 3);
|
||||
var templateNode = workspace.addNode("template");
|
||||
var httpResponseNode = workspace.addNode("httpResponse");
|
||||
|
||||
httpinNode.edit();
|
||||
httpinNode.setMethod("get");
|
||||
@ -139,9 +137,9 @@ describe('cookbook', function() {
|
||||
templateNode.connect(httpResponseNode);
|
||||
|
||||
// The code for confirmation starts from here.
|
||||
var injectNode = workspace.addNode("inject", 0, nodeHeight);
|
||||
var httpRequestNode = workspace.addNode("httpRequest", nodeWidth, nodeHeight);
|
||||
var debugNode = workspace.addNode("debug", nodeWidth * 2, nodeHeight);
|
||||
var injectNode = workspace.addNode("inject");
|
||||
var httpRequestNode = workspace.addNode("httpRequest");
|
||||
var debugNode = workspace.addNode("debug");
|
||||
|
||||
httpRequestNode.edit();
|
||||
httpRequestNode.setUrl(helper.url() + httpNodeRoot + '/hello-param/Dave');
|
||||
@ -161,8 +159,8 @@ describe('cookbook', function() {
|
||||
|
||||
it('access HTTP request headers', function () {
|
||||
var httpinNode = workspace.addNode("httpin");
|
||||
var templateNode = workspace.addNode("template", nodeWidth * 1.5);
|
||||
var httpResponseNode = workspace.addNode("httpResponse", nodeWidth * 2.5);
|
||||
var templateNode = workspace.addNode("template");
|
||||
var httpResponseNode = workspace.addNode("httpResponse");
|
||||
|
||||
httpinNode.edit();
|
||||
httpinNode.setMethod("get");
|
||||
@ -179,10 +177,10 @@ describe('cookbook', function() {
|
||||
templateNode.connect(httpResponseNode);
|
||||
|
||||
// The code for confirmation starts from here.
|
||||
var injectNode = workspace.addNode("inject", 0, nodeHeight);
|
||||
var changeNode = workspace.addNode("change", nodeWidth, nodeHeight);
|
||||
var httpRequestNode = workspace.addNode("httpRequest", nodeWidth * 2, nodeHeight);
|
||||
var debugNode = workspace.addNode("debug", nodeWidth * 3, nodeHeight);
|
||||
var injectNode = workspace.addNode("inject", 0, 100);
|
||||
var changeNode = workspace.addNode("change");
|
||||
var httpRequestNode = workspace.addNode("httpRequest");
|
||||
var debugNode = workspace.addNode("debug");
|
||||
|
||||
changeNode.edit();
|
||||
changeNode.ruleSet("headers", "msg", '{"user-agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64)"}', "json");
|
||||
@ -207,12 +205,12 @@ describe('cookbook', function() {
|
||||
|
||||
it('include data captured in another flow', function () {
|
||||
var injectNodeTimestamp = workspace.addNode("inject");
|
||||
var changeNodeStore = workspace.addNode("change", nodeWidth);
|
||||
var changeNodeStore = workspace.addNode("change");
|
||||
|
||||
var httpinNode = workspace.addNode("httpin", 0, nodeHeight);
|
||||
var changeNodeCopy = workspace.addNode("change", nodeWidth * 2, nodeHeight);
|
||||
var templateNode = workspace.addNode("template", nodeWidth * 3, nodeHeight);
|
||||
var httpResponseNode = workspace.addNode("httpResponse", nodeWidth * 4, nodeHeight);
|
||||
var httpinNode = workspace.addNode("httpin", 0, 100);
|
||||
var changeNodeCopy = workspace.addNode("change");
|
||||
var templateNode = workspace.addNode("template");
|
||||
var httpResponseNode = workspace.addNode("httpResponse");
|
||||
|
||||
injectNodeTimestamp.edit();
|
||||
injectNodeTimestamp.setPayload("date");
|
||||
@ -244,9 +242,9 @@ describe('cookbook', function() {
|
||||
templateNode.connect(httpResponseNode);
|
||||
|
||||
// The code for confirmation starts from here.
|
||||
var injectNodeCheck = workspace.addNode("inject", 0, nodeHeight * 2);
|
||||
var httpRequestNode = workspace.addNode("httpRequest", nodeWidth, nodeHeight * 2);
|
||||
var debugNode = workspace.addNode("debug", nodeWidth * 2, nodeHeight * 2);
|
||||
var injectNodeCheck = workspace.addNode("inject", 0, 300);
|
||||
var httpRequestNode = workspace.addNode("httpRequest");
|
||||
var debugNode = workspace.addNode("debug");
|
||||
|
||||
httpRequestNode.edit();
|
||||
httpRequestNode.setMethod("GET");
|
||||
@ -268,9 +266,9 @@ describe('cookbook', function() {
|
||||
|
||||
it('serve JSON content', function () {
|
||||
var httpinNode = workspace.addNode("httpin");
|
||||
var templateNode = workspace.addNode("template", nodeWidth);
|
||||
var changeNode = workspace.addNode("change", nodeWidth * 2);
|
||||
var httpResponseNode = workspace.addNode("httpResponse", nodeWidth * 3);
|
||||
var templateNode = workspace.addNode("template");
|
||||
var changeNode = workspace.addNode("change");
|
||||
var httpResponseNode = workspace.addNode("httpResponse");
|
||||
|
||||
httpinNode.edit();
|
||||
httpinNode.setMethod("get");
|
||||
@ -294,9 +292,9 @@ describe('cookbook', function() {
|
||||
changeNode.connect(httpResponseNode);
|
||||
|
||||
// The code for confirmation starts from here.
|
||||
var injectNode = workspace.addNode("inject", 0, nodeHeight);
|
||||
var httpRequestNode = workspace.addNode("httpRequest", nodeWidth, nodeHeight);
|
||||
var debugNode = workspace.addNode("debug", nodeWidth * 2, nodeHeight);
|
||||
var injectNode = workspace.addNode("inject", 0, 200);
|
||||
var httpRequestNode = workspace.addNode("httpRequest");
|
||||
var debugNode = workspace.addNode("debug");
|
||||
|
||||
httpRequestNode.edit();
|
||||
httpRequestNode.setMethod("GET");
|
||||
@ -322,9 +320,9 @@ describe('cookbook', function() {
|
||||
|
||||
it('serve a local file', function () {
|
||||
var httpinNode = workspace.addNode("httpin");
|
||||
var fileinNode = workspace.addNode("filein", nodeWidth);
|
||||
var changeNode = workspace.addNode("change", nodeWidth * 2, nodeHeight);
|
||||
var httpResponseNode = workspace.addNode("httpResponse", nodeWidth * 3.5, nodeHeight);
|
||||
var fileinNode = workspace.addNode("filein");
|
||||
var changeNode = workspace.addNode("change", 200, 100);
|
||||
var httpResponseNode = workspace.addNode("httpResponse");
|
||||
|
||||
httpinNode.edit();
|
||||
httpinNode.setMethod("get");
|
||||
@ -347,9 +345,9 @@ describe('cookbook', function() {
|
||||
changeNode.connect(httpResponseNode);
|
||||
|
||||
// The code for confirmation starts from here.
|
||||
var injectNode = workspace.addNode("inject", 0, nodeHeight * 2);
|
||||
var httpRequestNode = workspace.addNode("httpRequest", nodeWidth, nodeHeight * 2);
|
||||
var debugNode = workspace.addNode("debug", nodeWidth * 2, nodeHeight * 2);
|
||||
var injectNode = workspace.addNode("inject", 0, 200);
|
||||
var httpRequestNode = workspace.addNode("httpRequest");
|
||||
var debugNode = workspace.addNode("debug");
|
||||
|
||||
httpRequestNode.edit();
|
||||
httpRequestNode.setUrl(helper.url() + httpNodeRoot + '/hello-file');
|
||||
@ -369,8 +367,8 @@ describe('cookbook', function() {
|
||||
|
||||
it('post raw data to a flow', function() {
|
||||
var httpinNode = workspace.addNode("httpin");
|
||||
var templateNode = workspace.addNode("template", nodeWidth * 2);
|
||||
var httpResponseNode = workspace.addNode("httpResponse", nodeWidth * 3);
|
||||
var templateNode = workspace.addNode("template");
|
||||
var httpResponseNode = workspace.addNode("httpResponse");
|
||||
|
||||
httpinNode.edit();
|
||||
httpinNode.setMethod("post");
|
||||
@ -387,9 +385,9 @@ describe('cookbook', function() {
|
||||
templateNode.connect(httpResponseNode);
|
||||
|
||||
// The code for confirmation starts from here.
|
||||
var injectNode = workspace.addNode("inject", 0, nodeHeight);
|
||||
var httpRequestNode = workspace.addNode("httpRequest", nodeWidth, nodeHeight);
|
||||
var debugNode = workspace.addNode("debug", nodeWidth * 2, nodeHeight);
|
||||
var injectNode = workspace.addNode("inject");
|
||||
var httpRequestNode = workspace.addNode("httpRequest");
|
||||
var debugNode = workspace.addNode("debug");
|
||||
|
||||
injectNode.edit()
|
||||
injectNode.setPayload("str", "Nick");
|
||||
@ -413,8 +411,8 @@ describe('cookbook', function() {
|
||||
|
||||
it('post form data to a flow', function () {
|
||||
var httpinNode = workspace.addNode("httpin");
|
||||
var templateNode = workspace.addNode("template", nodeWidth * 1.5);
|
||||
var httpResponseNode = workspace.addNode("httpResponse", nodeWidth * 2.5);
|
||||
var templateNode = workspace.addNode("template");
|
||||
var httpResponseNode = workspace.addNode("httpResponse");
|
||||
|
||||
httpinNode.edit();
|
||||
httpinNode.setMethod("post");
|
||||
@ -431,10 +429,10 @@ describe('cookbook', function() {
|
||||
templateNode.connect(httpResponseNode);
|
||||
|
||||
// The code for confirmation starts from here.
|
||||
var injectNode = workspace.addNode("inject", 0, nodeHeight);
|
||||
var changeNode = workspace.addNode("change", nodeWidth, nodeHeight);
|
||||
var httpRequestNode = workspace.addNode("httpRequest", nodeWidth * 2, nodeHeight);
|
||||
var debugNode = workspace.addNode("debug", nodeWidth * 3, nodeHeight);
|
||||
var injectNode = workspace.addNode("inject", 0, 100);
|
||||
var changeNode = workspace.addNode("change");
|
||||
var httpRequestNode = workspace.addNode("httpRequest");
|
||||
var debugNode = workspace.addNode("debug");
|
||||
|
||||
injectNode.edit()
|
||||
injectNode.setPayload("str", "name=Nick");
|
||||
@ -463,8 +461,8 @@ describe('cookbook', function() {
|
||||
|
||||
it('post JSON data to a flow', function() {
|
||||
var httpinNode = workspace.addNode("httpin");
|
||||
var templateNode = workspace.addNode("template", nodeWidth * 2);
|
||||
var httpResponseNode = workspace.addNode("httpResponse", nodeWidth * 3);
|
||||
var templateNode = workspace.addNode("template");
|
||||
var httpResponseNode = workspace.addNode("httpResponse");
|
||||
|
||||
httpinNode.edit();
|
||||
httpinNode.setMethod("post");
|
||||
@ -481,10 +479,10 @@ describe('cookbook', function() {
|
||||
templateNode.connect(httpResponseNode);
|
||||
|
||||
// The code for confirmation starts from here.
|
||||
var injectNode = workspace.addNode("inject", 0, nodeHeight);
|
||||
var changeNode = workspace.addNode("change", nodeWidth, nodeHeight);
|
||||
var httpRequestNode = workspace.addNode("httpRequest", nodeWidth * 2, nodeHeight);
|
||||
var debugNode = workspace.addNode("debug", nodeWidth * 3, nodeHeight);
|
||||
var injectNode = workspace.addNode("inject", 0, 100);
|
||||
var changeNode = workspace.addNode("change");
|
||||
var httpRequestNode = workspace.addNode("httpRequest");
|
||||
var debugNode = workspace.addNode("debug");
|
||||
|
||||
injectNode.edit()
|
||||
injectNode.setPayload("json", '{"name":"Nick"}');
|
||||
@ -515,16 +513,16 @@ describe('cookbook', function() {
|
||||
this.timeout(60000);
|
||||
|
||||
var httpinNodeFormat = workspace.addNode("httpin");
|
||||
var functionNodeFormat = workspace.addNode("function", nodeWidth * 1.5);
|
||||
var templateNode = workspace.addNode("template", nodeWidth * 2.5);
|
||||
var httpResponseNode = workspace.addNode("httpResponse", nodeWidth * 3.5);
|
||||
var functionNodeFormat = workspace.addNode("function", 240);
|
||||
var templateNode = workspace.addNode("template", 400);
|
||||
var httpResponseNode = workspace.addNode("httpResponse", 600);
|
||||
|
||||
var httpinNodeAdd = workspace.addNode("httpin", 0, nodeHeight);
|
||||
var functionNodeAdd = workspace.addNode("function", nodeWidth * 1.5, nodeHeight);
|
||||
var changeNode = workspace.addNode("change", nodeWidth * 2.5, nodeHeight * 1.5);
|
||||
var httpinNodeAdd = workspace.addNode("httpin", 0, 100);
|
||||
var functionNodeAdd = workspace.addNode("function", 240);
|
||||
var changeNode = workspace.addNode("change", 400);
|
||||
|
||||
var httpinNodeClear = workspace.addNode("httpin", 0, nodeHeight * 2);
|
||||
var functionNodeClear = workspace.addNode("function", nodeWidth * 1.5, nodeHeight * 2);
|
||||
var httpinNodeClear = workspace.addNode("httpin", 0, 200);
|
||||
var functionNodeClear = workspace.addNode("function", 240);
|
||||
|
||||
httpinNodeFormat.edit();
|
||||
httpinNodeFormat.setMethod("get");
|
||||
|
@ -24,8 +24,6 @@ var workspace = require('../../pageobjects/editor/workspace_page');
|
||||
var specUtil = require('../../pageobjects/util/spec_util_page');
|
||||
var mqttConfig = require('../../pageobjects/nodes/core/io/10-mqttconfig_page.js');
|
||||
|
||||
var nodeWidth = 200;
|
||||
var nodeHeight = 100;
|
||||
var httpNodeRoot = "/api";
|
||||
|
||||
var mqttServer;
|
||||
@ -42,7 +40,7 @@ var moscaSettings = {
|
||||
// https://cookbook.nodered.org/
|
||||
describe('cookbook', function() {
|
||||
beforeEach(function() {
|
||||
workspace.deleteAllNodes();
|
||||
workspace.init();
|
||||
});
|
||||
|
||||
before(function() {
|
||||
@ -69,7 +67,7 @@ describe('cookbook', function() {
|
||||
|
||||
describe('MQTT', function() {
|
||||
it('Add an MQTT broker to prepare for UI test', function() {
|
||||
var mqttOutNode = workspace.addNode("mqttOut", nodeWidth);
|
||||
var mqttOutNode = workspace.addNode("mqttOut");
|
||||
|
||||
mqttOutNode.edit();
|
||||
mqttConfig.edit();
|
||||
@ -82,10 +80,10 @@ describe('cookbook', function() {
|
||||
|
||||
it('Connect to an MQTT broker', function() {
|
||||
var injectNode = workspace.addNode("inject");
|
||||
var mqttOutNode = workspace.addNode("mqttOut", nodeWidth);
|
||||
var mqttOutNode = workspace.addNode("mqttOut");
|
||||
|
||||
var mqttInNode = workspace.addNode("mqttIn", 0, nodeHeight);
|
||||
var debugNode = workspace.addNode("debug", nodeWidth * 2, nodeHeight);
|
||||
var mqttInNode = workspace.addNode("mqttIn", 0, 100);
|
||||
var debugNode = workspace.addNode("debug");
|
||||
|
||||
injectNode.edit();
|
||||
injectNode.setPayload("num", 22);
|
||||
@ -117,7 +115,7 @@ describe('cookbook', function() {
|
||||
|
||||
it('Set the topic of a published message', function() {
|
||||
var injectNode = workspace.addNode("inject");
|
||||
var mqttOutNode = workspace.addNode("mqttOut", nodeWidth * 2);
|
||||
var mqttOutNode = workspace.addNode("mqttOut");
|
||||
|
||||
injectNode.edit();
|
||||
injectNode.setPayload("num", 22);
|
||||
@ -130,8 +128,8 @@ describe('cookbook', function() {
|
||||
injectNode.connect(mqttOutNode);
|
||||
|
||||
// The code for confirmation starts from here.
|
||||
var mqttInNode = workspace.addNode("mqttIn", 0, nodeHeight);
|
||||
var debugNode = workspace.addNode("debug", nodeWidth * 2, nodeHeight);
|
||||
var mqttInNode = workspace.addNode("mqttIn", 0, 100);
|
||||
var debugNode = workspace.addNode("debug");
|
||||
|
||||
mqttInNode.edit();
|
||||
mqttInNode.setTopic("sensors/kitchen/temperature");
|
||||
@ -150,7 +148,7 @@ describe('cookbook', function() {
|
||||
|
||||
it('Publish a retained message to a topic', function() {
|
||||
var injectNode = workspace.addNode("inject");
|
||||
var mqttOutNode = workspace.addNode("mqttOut", nodeWidth);
|
||||
var mqttOutNode = workspace.addNode("mqttOut");
|
||||
|
||||
injectNode.edit();
|
||||
injectNode.setPayload("num", 22);
|
||||
@ -169,8 +167,8 @@ describe('cookbook', function() {
|
||||
debugTab.clearMessage();
|
||||
|
||||
// The code for confirmation starts from here.
|
||||
var mqttInNode = workspace.addNode("mqttIn", 0, nodeHeight);
|
||||
var debugNode = workspace.addNode("debug", nodeWidth * 2, nodeHeight);
|
||||
var mqttInNode = workspace.addNode("mqttIn", 0, 100);
|
||||
var debugNode = workspace.addNode("debug");
|
||||
|
||||
mqttInNode.edit();
|
||||
mqttInNode.setTopic("sensors/livingroom/temp");
|
||||
@ -189,11 +187,11 @@ describe('cookbook', function() {
|
||||
|
||||
it('Receive a parsed JSON message', function() {
|
||||
var injectNode = workspace.addNode("inject");
|
||||
var mqttOutNode = workspace.addNode("mqttOut", nodeWidth);
|
||||
var mqttOutNode = workspace.addNode("mqttOut");
|
||||
|
||||
var mqttInNode = workspace.addNode("mqttIn", 0, nodeHeight);
|
||||
var jsonNode = workspace.addNode("json", nodeWidth, nodeHeight);
|
||||
var debugNode = workspace.addNode("debug", nodeWidth * 2, nodeHeight);
|
||||
var mqttInNode = workspace.addNode("mqttIn", 0, 100);
|
||||
var jsonNode = workspace.addNode("json");
|
||||
var debugNode = workspace.addNode("debug");
|
||||
|
||||
injectNode.edit();
|
||||
injectNode.setPayload("json", '{"sensor_id": 1234, "temperature": 13 }');
|
||||
|
@ -23,14 +23,12 @@ var debugTab = require('../../pageobjects/editor/debugTab_page');
|
||||
var workspace = require('../../pageobjects/editor/workspace_page');
|
||||
var specUtil = require('../../pageobjects/util/spec_util_page');
|
||||
|
||||
var nodeWidth = 200;
|
||||
var nodeHeight = 100;
|
||||
var httpNodeRoot = "/api";
|
||||
|
||||
// https://cookbook.nodered.org/
|
||||
describe('cookbook', function() {
|
||||
beforeEach(function() {
|
||||
workspace.deleteAllNodes();
|
||||
workspace.init();
|
||||
});
|
||||
|
||||
before(function() {
|
||||
@ -44,8 +42,8 @@ describe('cookbook', function() {
|
||||
describe('messages', function() {
|
||||
it('set a message property to a fixed value', function() {
|
||||
var injectNode = workspace.addNode("inject");
|
||||
var changeNode = workspace.addNode("change", nodeWidth);
|
||||
var debugNode = workspace.addNode("debug", nodeWidth * 2);
|
||||
var changeNode = workspace.addNode("change");
|
||||
var debugNode = workspace.addNode("debug");
|
||||
|
||||
changeNode.edit();
|
||||
changeNode.ruleSet("payload", "msg", "Hello World!");
|
||||
@ -64,8 +62,8 @@ describe('cookbook', function() {
|
||||
|
||||
it('delete a message property', function() {
|
||||
var injectNode = workspace.addNode("inject");
|
||||
var changeNode = workspace.addNode("change", nodeWidth);
|
||||
var debugNode = workspace.addNode("debug", nodeWidth * 2);
|
||||
var changeNode = workspace.addNode("change");
|
||||
var debugNode = workspace.addNode("debug");
|
||||
|
||||
changeNode.edit();
|
||||
changeNode.ruleDelete();
|
||||
@ -84,8 +82,8 @@ describe('cookbook', function() {
|
||||
|
||||
it('move a message property', function() {
|
||||
var injectNode = workspace.addNode("inject");
|
||||
var changeNode = workspace.addNode("change", nodeWidth);
|
||||
var debugNode = workspace.addNode("debug", nodeWidth * 2);
|
||||
var changeNode = workspace.addNode("change");
|
||||
var debugNode = workspace.addNode("debug");
|
||||
|
||||
injectNode.edit();
|
||||
injectNode.setTopic("Hello");
|
||||
@ -108,10 +106,10 @@ describe('cookbook', function() {
|
||||
|
||||
it('map a property between different numeric ranges', function() {
|
||||
var injectNode1 = workspace.addNode("inject");
|
||||
var injectNode2 = workspace.addNode("inject", 0, 50);
|
||||
var injectNode3 = workspace.addNode("inject", 0, 100);
|
||||
var rangeNode = workspace.addNode("range", nodeWidth);
|
||||
var debugNode = workspace.addNode("debug", nodeWidth * 2);
|
||||
var injectNode2 = workspace.addNode("inject", 0, 100);
|
||||
var injectNode3 = workspace.addNode("inject", 0, 200);
|
||||
var rangeNode = workspace.addNode("range", 200, 100);
|
||||
var debugNode = workspace.addNode("debug", 400);
|
||||
|
||||
injectNode1.edit();
|
||||
injectNode1.setPayload("num", 0);
|
||||
@ -149,7 +147,7 @@ describe('cookbook', function() {
|
||||
describe('flow control', function() {
|
||||
it('trigger a flow whenever Node-RED starts', function() {
|
||||
var injectNode = workspace.addNode("inject");
|
||||
var debugNode = workspace.addNode("debug", nodeWidth * 2);
|
||||
var debugNode = workspace.addNode("debug");
|
||||
|
||||
injectNode.edit();
|
||||
injectNode.setPayload("str", "Started!")
|
||||
@ -165,7 +163,7 @@ describe('cookbook', function() {
|
||||
|
||||
it('trigger a flow at regular intervals', function() {
|
||||
var injectNode = workspace.addNode("inject");
|
||||
var debugNode = workspace.addNode("debug", nodeWidth * 2);
|
||||
var debugNode = workspace.addNode("debug");
|
||||
|
||||
injectNode.edit();
|
||||
injectNode.setRepeat("interval");
|
||||
@ -191,9 +189,9 @@ describe('cookbook', function() {
|
||||
describe('HTTP requests', function() {
|
||||
it('simple get request', function() {
|
||||
var injectNode = workspace.addNode("inject");
|
||||
var httpRequetNode = workspace.addNode("httpRequest", nodeWidth);
|
||||
var htmlNode = workspace.addNode("html", nodeWidth * 2);
|
||||
var debugNode = workspace.addNode("debug", nodeWidth * 3);
|
||||
var httpRequetNode = workspace.addNode("httpRequest");
|
||||
var htmlNode = workspace.addNode("html");
|
||||
var debugNode = workspace.addNode("debug");
|
||||
|
||||
httpRequetNode.edit();
|
||||
httpRequetNode.setMethod("GET");
|
||||
@ -218,9 +216,9 @@ describe('cookbook', function() {
|
||||
|
||||
it('set the URL of a request', function() {
|
||||
var injectNode = workspace.addNode("inject");
|
||||
var changeNode = workspace.addNode("change", nodeWidth * 1.5);
|
||||
var httpRequetNode = workspace.addNode("httpRequest", nodeWidth * 2.5);
|
||||
var debugNode = workspace.addNode("debug", nodeWidth * 3.5);
|
||||
var changeNode = workspace.addNode("change");
|
||||
var httpRequetNode = workspace.addNode("httpRequest");
|
||||
var debugNode = workspace.addNode("debug");
|
||||
|
||||
injectNode.edit();
|
||||
injectNode.setPayload("str", helper.url());
|
||||
@ -244,9 +242,9 @@ describe('cookbook', function() {
|
||||
|
||||
it('set the URL of a request using a template', function() {
|
||||
var injectNode = workspace.addNode("inject");
|
||||
var changeNode = workspace.addNode("change", nodeWidth * 1.5);
|
||||
var httpRequetNode = workspace.addNode("httpRequest", nodeWidth * 2.5);
|
||||
var debugNode = workspace.addNode("debug", nodeWidth * 3.5);
|
||||
var changeNode = workspace.addNode("change");
|
||||
var httpRequetNode = workspace.addNode("httpRequest");
|
||||
var debugNode = workspace.addNode("debug");
|
||||
|
||||
injectNode.edit();
|
||||
injectNode.setPayload("str", 'settings');
|
||||
@ -274,9 +272,9 @@ describe('cookbook', function() {
|
||||
|
||||
it('set the query string parameters', function() {
|
||||
var injectNode = workspace.addNode("inject");
|
||||
var changeNode = workspace.addNode("change", nodeWidth);
|
||||
var httpRequetNode = workspace.addNode("httpRequest", nodeWidth * 2);
|
||||
var debugNode = workspace.addNode("debug", nodeWidth * 3);
|
||||
var changeNode = workspace.addNode("change");
|
||||
var httpRequetNode = workspace.addNode("httpRequest");
|
||||
var debugNode = workspace.addNode("debug");
|
||||
|
||||
injectNode.edit();
|
||||
injectNode.setPayload("str", 'Nick');
|
||||
@ -295,9 +293,9 @@ describe('cookbook', function() {
|
||||
httpRequetNode.connect(debugNode);
|
||||
|
||||
// The code for confirmation starts from here.
|
||||
var httpinNode = workspace.addNode("httpin", 0, nodeHeight);
|
||||
var templateNode = workspace.addNode("template", nodeWidth, nodeHeight);
|
||||
var httpResponseNode = workspace.addNode("httpResponse", nodeWidth * 2, nodeHeight);
|
||||
var httpinNode = workspace.addNode("httpin", 0, 200);
|
||||
var templateNode = workspace.addNode("template");
|
||||
var httpResponseNode = workspace.addNode("httpResponse");
|
||||
|
||||
httpinNode.edit();
|
||||
httpinNode.setMethod("get");
|
||||
@ -323,9 +321,9 @@ describe('cookbook', function() {
|
||||
|
||||
it('get a parsed JSON response', function() {
|
||||
var injectNode = workspace.addNode("inject");
|
||||
var changeNodeSetPost = workspace.addNode("change", nodeWidth);
|
||||
var httpRequetNode = workspace.addNode("httpRequest", nodeWidth * 2);
|
||||
var debugNode = workspace.addNode("debug", nodeWidth * 3);
|
||||
var changeNodeSetPost = workspace.addNode("change");
|
||||
var httpRequetNode = workspace.addNode("httpRequest");
|
||||
var debugNode = workspace.addNode("debug");
|
||||
|
||||
injectNode.edit();
|
||||
injectNode.setPayload("str", "json-response");
|
||||
@ -351,10 +349,10 @@ describe('cookbook', function() {
|
||||
httpRequetNode.connect(debugNode);
|
||||
|
||||
// The code for confirmation starts from here.
|
||||
var httpinNode = workspace.addNode("httpin", 0, nodeHeight);
|
||||
var templateNode = workspace.addNode("template", nodeWidth * 1.5, nodeHeight);
|
||||
var changeNodeSetHeader = workspace.addNode("change", nodeWidth * 2.5, nodeHeight);
|
||||
var httpResponseNode = workspace.addNode("httpResponse", nodeWidth * 3.5, nodeHeight);
|
||||
var httpinNode = workspace.addNode("httpin", 0, 200);
|
||||
var templateNode = workspace.addNode("template");
|
||||
var changeNodeSetHeader = workspace.addNode("change");
|
||||
var httpResponseNode = workspace.addNode("httpResponse");
|
||||
|
||||
httpinNode.edit();
|
||||
httpinNode.setMethod("get");
|
||||
@ -385,8 +383,8 @@ describe('cookbook', function() {
|
||||
|
||||
it('get a binary response', function() {
|
||||
var injectNode = workspace.addNode("inject");
|
||||
var httpRequetNode = workspace.addNode("httpRequest", nodeWidth);
|
||||
var debugNode = workspace.addNode("debug", nodeWidth * 2);
|
||||
var httpRequetNode = workspace.addNode("httpRequest");
|
||||
var debugNode = workspace.addNode("debug");
|
||||
|
||||
httpRequetNode.edit();
|
||||
httpRequetNode.setMethod("GET");
|
||||
@ -408,9 +406,9 @@ describe('cookbook', function() {
|
||||
|
||||
it('set a request header', function() {
|
||||
var injectNode = workspace.addNode("inject");
|
||||
var functionNode = workspace.addNode("function", nodeWidth);
|
||||
var httpRequetNode = workspace.addNode("httpRequest", nodeWidth * 2);
|
||||
var debugNode = workspace.addNode("debug", nodeWidth * 3);
|
||||
var functionNode = workspace.addNode("function");
|
||||
var httpRequetNode = workspace.addNode("httpRequest");
|
||||
var debugNode = workspace.addNode("debug");
|
||||
|
||||
functionNode.edit();
|
||||
functionNode.setFunction('msg.payload = "data to post";\nreturn msg;');
|
||||
@ -427,9 +425,9 @@ describe('cookbook', function() {
|
||||
httpRequetNode.connect(debugNode);
|
||||
|
||||
// The code for confirmation starts from here.
|
||||
var httpinNode = workspace.addNode("httpin", 0, nodeHeight);
|
||||
var templateNode = workspace.addNode("template", nodeWidth * 1.5, nodeHeight);
|
||||
var httpResponseNode = workspace.addNode("httpResponse", nodeWidth * 2.5, nodeHeight);
|
||||
var httpinNode = workspace.addNode("httpin", 0, 200);
|
||||
var templateNode = workspace.addNode("template");
|
||||
var httpResponseNode = workspace.addNode("httpResponse");
|
||||
|
||||
httpinNode.edit();
|
||||
httpinNode.setMethod("post");
|
||||
|
Loading…
Reference in New Issue
Block a user