summaryrefslogtreecommitdiffstats
path: root/dgbuilder/test/red/nodes/index_spec.js
diff options
context:
space:
mode:
Diffstat (limited to 'dgbuilder/test/red/nodes/index_spec.js')
-rw-r--r--dgbuilder/test/red/nodes/index_spec.js255
1 files changed, 0 insertions, 255 deletions
diff --git a/dgbuilder/test/red/nodes/index_spec.js b/dgbuilder/test/red/nodes/index_spec.js
deleted file mode 100644
index dcb866e9..00000000
--- a/dgbuilder/test/red/nodes/index_spec.js
+++ /dev/null
@@ -1,255 +0,0 @@
-/**
- * Copyright 2014 IBM Corp.
- *
- * 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 should = require("should");
-var fs = require('fs-extra');
-var path = require('path');
-var when = require("when");
-var sinon = require('sinon');
-
-var index = require("../../../red/nodes/index");
-
-describe("red/nodes/index", function() {
-
- afterEach(function() {
- index.clearRegistry();
- });
-
- var testFlows = [{"type":"test","id":"tab1","label":"Sheet 1"}];
- var storage = {
- getFlows: function() {
- return when(testFlows);
- },
- getCredentials: function() {
- return when({"tab1":{"b":1,"c":2}});
- },
- saveFlows: function(conf) {
- should.deepEqual(testFlows, conf);
- return when();
- },
- saveCredentials: function(creds) {
- return when(true);
- }
- };
-
- var settings = {
- available: function() { return false }
- };
-
- function TestNode(n) {
- index.createNode(this, n);
- var node = this;
- this.on("log", function() {
- // do nothing
- });
- }
-
- it('nodes are initialised with credentials',function(done) {
-
- index.init(settings, storage);
- index.registerType('test', TestNode);
- index.loadFlows().then(function() {
- var testnode = new TestNode({id:'tab1',type:'test',name:'barney'});
- testnode.credentials.should.have.property('b',1);
- testnode.credentials.should.have.property('c',2);
- done();
- }).otherwise(function(err) {
- done(err);
- });
-
- });
-
- it('flows should be initialised',function(done) {
- index.init(settings, storage);
- index.loadFlows().then(function() {
- should.deepEqual(testFlows, index.getFlows());
- done();
- }).otherwise(function(err) {
- done(err);
- });
-
- });
-
- describe("registerType should register credentials definition", function() {
- var http = require('http');
- var express = require('express');
- var app = express();
- var server = require("../../../red/server");
- var credentials = require("../../../red/nodes/credentials");
- var localfilesystem = require("../../../red/storage/localfilesystem");
- var RED = require("../../../red/red.js");
-
- var userDir = path.join(__dirname,".testUserHome");
- before(function(done) {
- fs.remove(userDir,function(err) {
- fs.mkdir(userDir,function() {
- sinon.stub(index, 'load', function() {
- return when.promise(function(resolve,reject){
- resolve([]);
- });
- });
- sinon.stub(localfilesystem, 'getCredentials', function() {
- return when.promise(function(resolve,reject) {
- resolve({"tab1":{"b":1,"c":2}});
- });
- }) ;
- RED.init(http.createServer(function(req,res){app(req,res)}),
- {userDir: userDir});
- server.start().then(function () {
- done();
- });
- });
- });
- });
-
- after(function(done) {
- fs.remove(userDir,done);
- server.stop();
- index.load.restore();
- localfilesystem.getCredentials.restore();
- });
-
- it(': definition defined',function(done) {
- index.registerType('test', TestNode, {
- credentials: {
- foo: {type:"test"}
- }
- });
- var testnode = new TestNode({id:'tab1',type:'test',name:'barney'});
- credentials.getDefinition("test").should.have.property('foo');
- done();
- });
-
- });
-
- describe('allows nodes to be added/remove/enabled/disabled from the registry', function() {
- var registry = require("../../../red/nodes/registry");
- var randomNodeInfo = {id:"5678",types:["random"]};
-
- before(function() {
- sinon.stub(registry,"getNodeInfo",function(id) {
- if (id == "test") {
- return {id:"1234",types:["test"]};
- } else if (id == "doesnotexist") {
- return null;
- } else {
- return randomNodeInfo;
- }
- });
- sinon.stub(registry,"removeNode",function(id) {
- return randomNodeInfo;
- });
- sinon.stub(registry,"disableNode",function(id) {
- return randomNodeInfo;
- });
- });
- after(function() {
- registry.getNodeInfo.restore();
- registry.removeNode.restore();
- registry.disableNode.restore();
- });
-
- it(': allows an unused node type to be removed',function(done) {
- index.init(settings, storage);
- index.registerType('test', TestNode);
- index.loadFlows().then(function() {
- var info = index.removeNode("5678");
- registry.removeNode.calledOnce.should.be.true;
- registry.removeNode.calledWith("5678").should.be.true;
- info.should.eql(randomNodeInfo);
- done();
- }).otherwise(function(err) {
- done(err);
- });
- });
-
- it(': allows an unused node type to be disabled',function(done) {
- index.init(settings, storage);
- index.registerType('test', TestNode);
- index.loadFlows().then(function() {
- var info = index.disableNode("5678");
- registry.disableNode.calledOnce.should.be.true;
- registry.disableNode.calledWith("5678").should.be.true;
- info.should.eql(randomNodeInfo);
- done();
- }).otherwise(function(err) {
- done(err);
- });
- });
-
- it(': prevents removing a node type that is in use',function(done) {
- index.init(settings, storage);
- index.registerType('test', TestNode);
- index.loadFlows().then(function() {
- /*jshint immed: false */
- (function() {
- index.removeNode("test");
- }).should.throw();
-
- done();
- }).otherwise(function(err) {
- done(err);
- });
- });
-
- it(': prevents disabling a node type that is in use',function(done) {
- index.init(settings, storage);
- index.registerType('test', TestNode);
- index.loadFlows().then(function() {
- /*jshint immed: false */
- (function() {
- index.disabledNode("test");
- }).should.throw();
-
- done();
- }).otherwise(function(err) {
- done(err);
- });
- });
-
- it(': prevents removing a node type that is unknown',function(done) {
- index.init(settings, storage);
- index.registerType('test', TestNode);
- index.loadFlows().then(function() {
- /*jshint immed: false */
- (function() {
- index.removeNode("doesnotexist");
- }).should.throw();
-
- done();
- }).otherwise(function(err) {
- done(err);
- });
- });
- it(': prevents disabling a node type that is unknown',function(done) {
- index.init(settings, storage);
- index.registerType('test', TestNode);
- index.loadFlows().then(function() {
- /*jshint immed: false */
- (function() {
- index.disableNode("doesnotexist");
- }).should.throw();
-
- done();
- }).otherwise(function(err) {
- done(err);
- });
- });
-
- });
-
-
-});