mirror of
				https://github.com/node-red/node-red.git
				synced 2025-03-01 10:36:34 +00:00 
			
		
		
		
	Merge pull request #1942 from node-red-hitachi/dev-uitest-place
Automatically adjust node deployment
This commit is contained in:
		| @@ -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"); | ||||
|   | ||||
		Reference in New Issue
	
	Block a user