mirror of
				https://github.com/node-red/node-red.git
				synced 2025-03-01 10:36:34 +00:00 
			
		
		
		
	
		
			
				
	
	
		
			75 lines
		
	
	
		
			2.3 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
			
		
		
	
	
			75 lines
		
	
	
		
			2.3 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
| /**
 | |
|  * Copyright JS Foundation and other contributors, http://js.foundation
 | |
|  *
 | |
|  * Licensed under the Apache License, Version 2.0 (the "License");
 | |
|  * you may not use this file except in compliance with the License.
 | |
|  * You may obtain a copy of the License at
 | |
|  *
 | |
|  * http://www.apache.org/licenses/LICENSE-2.0
 | |
|  *
 | |
|  * Unless required by applicable law or agreed to in writing, software
 | |
|  * distributed under the License is distributed on an "AS IS" BASIS,
 | |
|  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 | |
|  * See the License for the specific language governing permissions and
 | |
|  * limitations under the License.
 | |
|  **/
 | |
| 
 | |
| var when = require('when');
 | |
| var should = require('should');
 | |
| var fs = require('fs-extra');
 | |
| 
 | |
| var helper = require('../../editor_helper');
 | |
| var debugTab = require('../../pageobjects/editor/debugTab_page');
 | |
| var workspace = require('../../pageobjects/editor/workspace_page');
 | |
| var specUtil = require('../../pageobjects/util/spec_util_page');
 | |
| 
 | |
| var httpNodeRoot = '/api';
 | |
| 
 | |
| // https://cookbook.nodered.org/
 | |
| describe('cookbook', function () {
 | |
|     beforeEach(function () {
 | |
|         workspace.init();
 | |
|     });
 | |
| 
 | |
|     before(function () {
 | |
|         helper.startServer();
 | |
|     });
 | |
| 
 | |
|     after(function () {
 | |
|         helper.stopServer();
 | |
|     });
 | |
| 
 | |
|     describe('messages', function () {
 | |
|         it('trigger a flow when a node throws an error', function () {
 | |
|             var injectNode = workspace.addNode('inject');
 | |
|             var functionNode = workspace.addNode('function');
 | |
|             var catchNode = workspace.addNode('catch', 0 , 80);
 | |
|             var debugNode = workspace.addNode('debug');
 | |
| 
 | |
|             functionNode.edit();
 | |
|             functionNode.setFunction('node.error("an example error", msg);');
 | |
|             functionNode.clickOk();
 | |
| 
 | |
|             catchNode.edit();
 | |
|             catchNode.setScope(functionNode);
 | |
|             catchNode.clickOk();
 | |
| 
 | |
|             debugNode.edit();
 | |
|             debugNode.setOutput('error');
 | |
|             debugNode.clickOk();
 | |
| 
 | |
|             injectNode.connect(functionNode);
 | |
|             catchNode.connect(debugNode);
 | |
| 
 | |
|             workspace.deploy();
 | |
| 
 | |
|             debugTab.open();
 | |
|             injectNode.clickLeftButton();
 | |
|             debugTab.getMessage().should.eql(['"an example error"', 'function']);
 | |
|         });
 | |
| 
 | |
|         // skip this case since the flow outputs random results.
 | |
|         it.skip('automatically retry an action after an error');
 | |
|     });
 | |
| });
 |