Fully remove when.js dependency

This commit is contained in:
Nick O'Leary
2020-11-30 14:38:48 +00:00
parent beccdac717
commit 5992ed1fab
49 changed files with 299 additions and 357 deletions

View File

@@ -14,7 +14,6 @@
* limitations under the License.
**/
var when = require("when");
var http = require("http");
var https = require("https");
var should = require("should");

View File

@@ -15,7 +15,6 @@
**/
var ws = require("ws");
var when = require("when");
var should = require("should");
var helper = require("node-red-node-test-helper");
var websocketNode = require("nr-test-utils").require("@node-red/nodes/core/network/22-websocket.js");
@@ -27,7 +26,7 @@ function getWsUrl(path) {
}
function createClient(listenerid) {
return when.promise(function(resolve, reject) {
return new Promise(function(resolve, reject) {
var node = helper.getNode(listenerid);
var url = getWsUrl(node.path);
var sock = new ws(url);
@@ -300,23 +299,33 @@ describe('websocket Node', function() {
{ id: "n2", type: "websocket out", server: "n1" },
{ id: "n3", type: "helper", wires: [["n2"]] }];
helper.load(websocketNode, flow, function() {
var def1 = when.defer(),
def2 = when.defer();
when.all([createClient("n1"), createClient("n1")]).then(function(socks) {
socks[0].on("message", function(msg, flags) {
msg.should.equal("hello");
def1.resolve();
});
socks[1].on("message", function(msg, flags) {
msg.should.equal("hello");
def2.resolve();
});
Promise.all([createClient("n1"), createClient("n1")]).then(function(socks) {
var promises = [
new Promise((resolve,reject) => {
socks[0].on("message", function(msg, flags) {
try {
msg.should.equal("hello");
resolve();
} catch(err) {
reject(err);
}
});
}),
new Promise((resolve,reject) => {
socks[1].on("message", function(msg, flags) {
try {
msg.should.equal("hello");
resolve();
} catch(err) {
reject(err);
}
});
})
];
helper.getNode("n3").send({
payload: "hello"
});
return when.all([def1.promise, def2.promise]).then(function() {
done();
});
return Promise.all(promises).then(() => {done()});
}).catch(function(err) {
done(err);
});

View File

@@ -19,7 +19,6 @@ var request = require('supertest');
var express = require('express');
var bodyParser = require('body-parser');
var sinon = require('sinon');
var when = require('when');
var NR_TEST_UTILS = require("nr-test-utils");

View File

@@ -19,7 +19,6 @@ var request = require('supertest');
var express = require('express');
var bodyParser = require('body-parser');
var sinon = require('sinon');
var when = require('when');
var NR_TEST_UTILS = require("nr-test-utils");

View File

@@ -15,7 +15,6 @@
**/
var should = require("should");
var when = require("when");
var sinon = require("sinon");
var passport = require("passport");
@@ -60,7 +59,7 @@ describe("api/auth/index",function() {
describe("revoke", function() {
it("revokes a token", function(done) {
var revokeToken = sinon.stub(Tokens,"revoke",function() {
return when.resolve();
return Promise.resolve();
});
var req = { body: { token: "abcdef" } };

View File

@@ -15,7 +15,6 @@
**/
var should = require("should");
var when = require('when');
var sinon = require('sinon');
var NR_TEST_UTILS = require("nr-test-utils");
@@ -37,7 +36,7 @@ describe("api/auth/strategies", function() {
it('Handles authentication failure',function(done) {
userAuthentication = sinon.stub(Users,"authenticate",function(username,password) {
return when.resolve(null);
return Promise.resolve(null);
});
strategies.passwordTokenExchange({},"user","password","scope",function(err,token) {
@@ -53,7 +52,7 @@ describe("api/auth/strategies", function() {
it('Handles scope overreach',function(done) {
userAuthentication = sinon.stub(Users,"authenticate",function(username,password) {
return when.resolve({username:"user",permissions:"read"});
return Promise.resolve({username:"user",permissions:"read"});
});
strategies.passwordTokenExchange({},"user","password","*",function(err,token) {
@@ -69,14 +68,14 @@ describe("api/auth/strategies", function() {
it('Creates new token on authentication success',function(done) {
userAuthentication = sinon.stub(Users,"authenticate",function(username,password) {
return when.resolve({username:"user",permissions:"*"});
return Promise.resolve({username:"user",permissions:"*"});
});
var tokenDetails = {};
var tokenCreate = sinon.stub(Tokens,"create",function(username,client,scope) {
tokenDetails.username = username;
tokenDetails.client = client;
tokenDetails.scope = scope;
return when.resolve({accessToken: "123456"});
return Promise.resolve({accessToken: "123456"});
});
strategies.passwordTokenExchange({id:"myclient"},"user","password","read",function(err,token) {
@@ -100,7 +99,7 @@ describe("api/auth/strategies", function() {
describe("Anonymous Strategy", function() {
it('Succeeds if anon user enabled',function(done) {
var userDefault = sinon.stub(Users,"default",function() {
return when.resolve("anon");
return Promise.resolve("anon");
});
strategies.anonymousStrategy._success = strategies.anonymousStrategy.success;
strategies.anonymousStrategy.success = function(user) {
@@ -113,7 +112,7 @@ describe("api/auth/strategies", function() {
});
it('Fails if anon user not enabled',function(done) {
var userDefault = sinon.stub(Users,"default",function() {
return when.resolve(null);
return Promise.resolve(null);
});
strategies.anonymousStrategy._fail = strategies.anonymousStrategy.fail;
strategies.anonymousStrategy.fail = function(err) {
@@ -132,7 +131,7 @@ describe("api/auth/strategies", function() {
describe("Tokens Strategy", function() {
it('Succeeds if tokens user enabled custom header',function(done) {
var userTokens = sinon.stub(Users,"tokens",function(token) {
return when.resolve("tokens-"+token);
return Promise.resolve("tokens-"+token);
});
var userTokenHeader = sinon.stub(Users,"tokenHeader",function(token) {
return "x-test-token";
@@ -148,7 +147,7 @@ describe("api/auth/strategies", function() {
});
it('Succeeds if tokens user enabled default header',function(done) {
var userTokens = sinon.stub(Users,"tokens",function(token) {
return when.resolve("tokens-"+token);
return Promise.resolve("tokens-"+token);
});
var userTokenHeader = sinon.stub(Users,"tokenHeader",function(token) {
return "authorization";
@@ -164,7 +163,7 @@ describe("api/auth/strategies", function() {
});
it('Fails if tokens user not enabled',function(done) {
var userTokens = sinon.stub(Users,"tokens",function() {
return when.resolve(null);
return Promise.resolve(null);
});
var userTokenHeader = sinon.stub(Users,"tokenHeader",function(token) {
return "authorization";
@@ -187,7 +186,7 @@ describe("api/auth/strategies", function() {
describe("Bearer Strategy", function() {
it('Rejects invalid token',function(done) {
var getToken = sinon.stub(Tokens,"get",function(token) {
return when.resolve(null);
return Promise.resolve(null);
});
strategies.bearerStrategy("1234",function(err,user) {
@@ -204,10 +203,10 @@ describe("api/auth/strategies", function() {
});
it('Accepts valid token',function(done) {
var getToken = sinon.stub(Tokens,"get",function(token) {
return when.resolve({user:"user",scope:"scope"});
return Promise.resolve({user:"user",scope:"scope"});
});
var getUser = sinon.stub(Users,"get",function(username) {
return when.resolve("aUser");
return Promise.resolve("aUser");
});
strategies.bearerStrategy("1234",function(err,user,opts) {
@@ -226,10 +225,10 @@ describe("api/auth/strategies", function() {
});
it('Fail if no user for token',function(done) {
var getToken = sinon.stub(Tokens,"get",function(token) {
return when.resolve({user:"user",scope:"scope"});
return Promise.resolve({user:"user",scope:"scope"});
});
var getUser = sinon.stub(Users,"get",function(username) {
return when.resolve(null);
return Promise.resolve(null);
});
strategies.bearerStrategy("1234",function(err,user,opts) {
@@ -252,7 +251,7 @@ describe("api/auth/strategies", function() {
it('Accepts valid client',function(done) {
var testClient = {id:"node-red-editor",secret:"not_available"};
var getClient = sinon.stub(Clients,"get",function(client) {
return when.resolve(testClient);
return Promise.resolve(testClient);
});
strategies.clientPasswordStrategy(testClient.id,testClient.secret,function(err,client) {
@@ -270,7 +269,7 @@ describe("api/auth/strategies", function() {
it('Rejects invalid client secret',function(done) {
var testClient = {id:"node-red-editor",secret:"not_available"};
var getClient = sinon.stub(Clients,"get",function(client) {
return when.resolve(testClient);
return Promise.resolve(testClient);
});
strategies.clientPasswordStrategy(testClient.id,"invalid_secret",function(err,client) {
@@ -287,7 +286,7 @@ describe("api/auth/strategies", function() {
});
it('Rejects invalid client id',function(done) {
var getClient = sinon.stub(Clients,"get",function(client) {
return when.resolve(null);
return Promise.resolve(null);
});
strategies.clientPasswordStrategy("invalid_id","invalid_secret",function(err,client) {
try {
@@ -305,7 +304,7 @@ describe("api/auth/strategies", function() {
var userAuthentication;
it('Blocks after 5 failures',function(done) {
userAuthentication = sinon.stub(Users,"authenticate",function(username,password) {
return when.resolve(null);
return Promise.resolve(null);
});
for (var z=0; z<5; z++) {
strategies.passwordTokenExchange({},"user","badpassword","scope",function(err,token) {

View File

@@ -15,7 +15,6 @@
**/
var should = require("should");
var when = require("when");
var sinon = require("sinon");
var NR_TEST_UTILS = require("nr-test-utils");
@@ -35,7 +34,7 @@ describe("api/auth/tokens", function() {
it('returns a valid token', function(done) {
Tokens.init({},{
getSessions:function() {
return when.resolve({"1234":{"user":"fred","expires":Date.now()+1000}});
return Promise.resolve({"1234":{"user":"fred","expires":Date.now()+1000}});
}
}).then(function() {
Tokens.get("1234").then(function(token) {
@@ -52,7 +51,7 @@ describe("api/auth/tokens", function() {
it('returns null for an invalid token', function(done) {
Tokens.init({},{
getSessions:function() {
return when.resolve({});
return Promise.resolve({});
}
}).then(function() {
Tokens.get("1234").then(function(token) {
@@ -66,11 +65,11 @@ describe("api/auth/tokens", function() {
});
});
it('returns null for an expired token', function(done) {
var saveSessions = sinon.stub().returns(when.resolve());
var saveSessions = sinon.stub().returns(Promise.resolve());
var expiryTime = Date.now()+50;
Tokens.init({},{
getSessions:function() {
return when.resolve({"1234":{"user":"fred","expires":expiryTime}});
return Promise.resolve({"1234":{"user":"fred","expires":expiryTime}});
},
saveSessions: saveSessions
}).then(function() {
@@ -100,10 +99,10 @@ describe("api/auth/tokens", function() {
tokens: [{
token: "1234",
user: "fred",
}]
}]
},{
getSessions:function() {
return when.resolve({});
return Promise.resolve({});
}
}).then(function() {
Tokens.get("1234").then(function(token) {
@@ -124,11 +123,11 @@ describe("api/auth/tokens", function() {
var savedSession;
Tokens.init({sessionExpiryTime: 10},{
getSessions:function() {
return when.resolve({});
return Promise.resolve({});
},
saveSessions:function(sess) {
savedSession = sess;
return when.resolve();
return Promise.resolve();
}
});
var expectedExpiryTime = Date.now()+10000;
@@ -159,11 +158,11 @@ describe("api/auth/tokens", function() {
var savedSession;
Tokens.init({},{
getSessions:function() {
return when.resolve({"1234":{"user":"fred","expires":Date.now()+1000}});
return Promise.resolve({"1234":{"user":"fred","expires":Date.now()+1000}});
},
saveSessions:function(sess) {
savedSession = sess;
return when.resolve();
return Promise.resolve();
}
}).then(function() {
Tokens.revoke("1234").then(function() {

View File

@@ -15,7 +15,6 @@
**/
var should = require("should");
var when = require('when');
var sinon = require('sinon');
var NR_TEST_UTILS = require("nr-test-utils");
@@ -144,12 +143,12 @@ describe("api/auth/users", function() {
Users.init({
type:"credentials",
users:function(username) {
return when.resolve({'username':'dave','permissions':'read'});
return Promise.resolve({'username':'dave','permissions':'read'});
},
authenticate: function(username,password) {
authUsername = username;
authPassword = password;
return when.resolve({'username':'pete','permissions':'write'});
return Promise.resolve({'username':'pete','permissions':'write'});
}
});
});

View File

@@ -18,7 +18,6 @@ var should = require("should");
var sinon = require("sinon");
const stoppable = require('stoppable');
var when = require("when");
var http = require('http');
var express = require('express');
var app = express();
@@ -59,7 +58,7 @@ describe("api/editor/comms", function() {
var url;
var port;
before(function(done) {
sinon.stub(Users,"default",function() { return when.resolve(null);});
sinon.stub(Users,"default",function() { return Promise.resolve(null);});
server = stoppable(http.createServer(function(req,res){app(req,res)}));
comms.init(server, {}, {comms: mockComms});
server.listen(listenPort, address);
@@ -165,7 +164,7 @@ describe("api/editor/comms", function() {
var url;
var port;
before(function(done) {
sinon.stub(Users,"default",function() { return when.resolve(null);});
sinon.stub(Users,"default",function() { return Promise.resolve(null);});
server = stoppable(http.createServer(function(req,res){app(req,res)}));
comms.init(server, {httpAdminRoot:"/adminPath"}, {comms: mockComms});
server.listen(listenPort, address);
@@ -203,7 +202,7 @@ describe("api/editor/comms", function() {
var url;
var port;
before(function(done) {
sinon.stub(Users,"default",function() { return when.resolve(null);});
sinon.stub(Users,"default",function() { return Promise.resolve(null);});
server = stoppable(http.createServer(function(req,res){app(req,res)}));
comms.init(server, {httpAdminRoot:"/adminPath/"}, {comms: mockComms});
server.listen(listenPort, address);
@@ -241,7 +240,7 @@ describe("api/editor/comms", function() {
var url;
var port;
before(function(done) {
sinon.stub(Users,"default",function() { return when.resolve(null);});
sinon.stub(Users,"default",function() { return Promise.resolve(null);});
server = stoppable(http.createServer(function(req,res){app(req,res)}));
comms.init(server, {httpAdminRoot:"adminPath"}, {comms: mockComms});
server.listen(listenPort, address);
@@ -279,7 +278,7 @@ describe("api/editor/comms", function() {
var url;
var port;
before(function(done) {
sinon.stub(Users,"default",function() { return when.resolve(null);});
sinon.stub(Users,"default",function() { return Promise.resolve(null);});
server = stoppable(http.createServer(function(req,res){app(req,res)}));
comms.init(server, {webSocketKeepAliveTime: 100}, {comms: mockComms});
server.listen(listenPort, address);
@@ -345,28 +344,28 @@ describe("api/editor/comms", function() {
var getToken;
var getUserToken;
before(function(done) {
getDefaultUser = sinon.stub(Users,"default",function() { return when.resolve(null);});
getDefaultUser = sinon.stub(Users,"default",function() { return Promise.resolve(null);});
getUser = sinon.stub(Users,"get", function(username) {
if (username == "fred") {
return when.resolve({permissions:"read"});
return Promise.resolve({permissions:"read"});
} else {
return when.resolve(null);
return Promise.resolve(null);
}
});
getUserToken = sinon.stub(Users,"tokens", function(token) {
if (token == "abcde") {
return when.resolve({user:"wilma", permissions:"*"})
return Promise.resolve({user:"wilma", permissions:"*"})
} else {
return when.resolve(null);
return Promise.resolve(null);
}
});
getToken = sinon.stub(Tokens,"get",function(token) {
if (token == "1234") {
return when.resolve({user:"fred",scope:["*"]});
return Promise.resolve({user:"fred",scope:["*"]});
} else if (token == "5678") {
return when.resolve({user:"barney",scope:["*"]});
return Promise.resolve({user:"barney",scope:["*"]});
} else {
return when.resolve(null);
return Promise.resolve(null);
}
});
@@ -484,7 +483,7 @@ describe("api/editor/comms", function() {
var port;
var getDefaultUser;
before(function(done) {
getDefaultUser = sinon.stub(Users,"default",function() { return when.resolve({permissions:"read"});});
getDefaultUser = sinon.stub(Users,"default",function() { return Promise.resolve({permissions:"read"});});
server = stoppable(http.createServer(function(req,res){app(req,res)}));
comms.init(server, {adminAuth:{}}, {comms: mockComms});
server.listen(listenPort, address);

View File

@@ -18,7 +18,6 @@ var should = require("should");
var request = require('supertest');
var express = require('express');
var sinon = require('sinon');
var when = require('when');
var NR_TEST_UTILS = require("nr-test-utils");

View File

@@ -28,10 +28,6 @@ var auth = NR_TEST_UTILS.require("@node-red/editor-api/lib/auth");
var log = NR_TEST_UTILS.require("@node-red/util").log;
var when = require("when");
describe("api/editor/index", function() {
var app;
describe("disabled the editor", function() {

View File

@@ -17,7 +17,6 @@
var should = require("should");
var express = require('express');
var sinon = require('sinon');
var when = require('when');
var fs = require("fs");
var app = express();

View File

@@ -18,7 +18,6 @@ var should = require("should");
var sinon = require("sinon");
var request = require("supertest");
var express = require("express");
var when = require("when");
var fs = require("fs");
var path = require("path");

View File

@@ -17,7 +17,6 @@
var should = require("should");
var sinon = require("sinon");
var path = require("path");
var when = require("when");
var fs = require("fs");
var NR_TEST_UTILS = require("nr-test-utils");
@@ -51,7 +50,7 @@ describe('red/registry/index', function() {
describe('#addModule', function() {
it('loads the module and returns its info', function(done) {
stubs.push(sinon.stub(loader,"addModule",function(module) {
return when.resolve();
return Promise.resolve();
}));
stubs.push(sinon.stub(typeRegistry,"getModuleInfo", function(module) {
return "info";
@@ -63,7 +62,7 @@ describe('red/registry/index', function() {
});
it('rejects if loader rejects', function(done) {
stubs.push(sinon.stub(loader,"addModule",function(module) {
return when.reject("error");
return Promise.reject("error");
}));
stubs.push(sinon.stub(typeRegistry,"getModuleInfo", function(module) {
return "info";
@@ -80,7 +79,7 @@ describe('red/registry/index', function() {
describe('#enableNode',function() {
it('enables a node set',function(done) {
stubs.push(sinon.stub(typeRegistry,"enableNodeSet",function() {
return when.resolve();
return Promise.resolve();
}));
stubs.push(sinon.stub(typeRegistry,"getNodeInfo", function() {
return {id:"node-set",loaded:true};
@@ -104,14 +103,14 @@ describe('red/registry/index', function() {
it('triggers a node load',function(done) {
stubs.push(sinon.stub(typeRegistry,"enableNodeSet",function() {
return when.resolve();
return Promise.resolve();
}));
var calls = 0;
stubs.push(sinon.stub(typeRegistry,"getNodeInfo", function() {
// loaded=false on first call, true on subsequent
return {id:"node-set",loaded:(calls++>0)};
}));
stubs.push(sinon.stub(loader,"loadNodeSet",function(){return when.resolve();}));
stubs.push(sinon.stub(loader,"loadNodeSet",function(){return Promise.resolve();}));
stubs.push(sinon.stub(typeRegistry,"getFullNodeInfo"));
registry.enableNode("node-set").then(function(ns) {

View File

@@ -16,7 +16,6 @@
var should = require("should");
var sinon = require("sinon");
var when = require("when");
var path = require("path");
var fs = require('fs-extra');
var EventEmitter = require('events');
@@ -185,7 +184,7 @@ describe('nodes/registry/installer', function() {
initInstaller(p)
var addModule = sinon.stub(registry,"addModule",function(md) {
return when.resolve(nodeInfo);
return Promise.resolve(nodeInfo);
});
installer.installModule("this_wont_exist").then(function(info) {
@@ -216,7 +215,7 @@ describe('nodes/registry/installer', function() {
it("succeeds when path is valid node-red module", function(done) {
var nodeInfo = {nodes:{module:"foo",types:["a"]}};
var addModule = sinon.stub(registry,"addModule",function(md) {
return when.resolve(nodeInfo);
return Promise.resolve(nodeInfo);
});
var resourcesDir = path.resolve(path.join(__dirname,"resources","local","TestNodeModule","node_modules","TestNodeModule"));
@@ -246,7 +245,7 @@ describe('nodes/registry/installer', function() {
initInstaller(p)
var addModule = sinon.stub(registry,"addModule",function(md) {
return when.resolve(nodeInfo);
return Promise.resolve(nodeInfo);
});
installer.installModule("this_wont_exist",null,"https://example/foo-0.1.1.tgz").then(function(info) {
@@ -259,19 +258,20 @@ describe('nodes/registry/installer', function() {
describe("uninstalls module", function() {
it("rejects invalid module names", function(done) {
var promises = [];
promises.push(installer.uninstallModule("this_wont_exist "));
promises.push(installer.uninstallModule("this_wont_exist;no_it_really_wont"));
when.settle(promises).then(function(results) {
results[0].state.should.be.eql("rejected");
results[1].state.should.be.eql("rejected");
var rejectedCount = 0;
promises.push(installer.uninstallModule("this_wont_exist ").catch(() => {rejectedCount++}));
promises.push(installer.uninstallModule("this_wont_exist;no_it_really_wont").catch(() => {rejectedCount++}));
Promise.all(promises).then(function() {
rejectedCount.should.eql(2);
done();
});
}).catch(done);
});
it("rejects with generic error", function(done) {
var nodeInfo = [{module:"foo",types:["a"]}];
var removeModule = sinon.stub(registry,"removeModule",function(md) {
return when.resolve(nodeInfo);
return Promise.resolve(nodeInfo);
});
var res = {
code: 1,

View File

@@ -15,7 +15,6 @@
**/
var should = require("should");
var when = require("when");
var sinon = require("sinon");
var path = require("path");
var fs = require("fs-extra");

View File

@@ -15,7 +15,6 @@
**/
var should = require("should");
var when = require("when");
var sinon = require("sinon");
var path = require("path");

View File

@@ -15,7 +15,6 @@
**/
var should = require("should");
var when = require("when");
var sinon = require("sinon");
var path = require("path");
@@ -34,7 +33,7 @@ describe("red/nodes/registry/registry",function() {
function stubSettings(s,available,initialConfig) {
s.available = function() {return available;};
s.set = sinon.spy(function(s,v) { return when.resolve();});
s.set = sinon.spy(function(s,v) { return Promise.resolve();});
s.get = function(s) { return initialConfig;};
return s;
}
@@ -95,7 +94,7 @@ describe("red/nodes/registry/registry",function() {
it('migrates legacy format', function(done) {
var legacySettings = {
available: function() { return true; },
set: sinon.stub().returns(when.resolve()),
set: sinon.stub().returns(Promise.resolve()),
get: function() { return {
"123": {
"name": "72-sentiment.js",

View File

@@ -1,8 +1,7 @@
// A test node that exports a function which returns a resolving promise
var when = require("when");
module.exports = function(RED) {
return when.promise(function(resolve,reject) {
return new Promise(function(resolve,reject) {
function TestNode(n) {}
RED.nodes.registerType("test-node-2",TestNode);
resolve();

View File

@@ -1,8 +1,7 @@
// A test node that exports a function which returns a rejecting promise
var when = require("when");
module.exports = function(RED) {
return when.promise(function(resolve,reject) {
return new Promise(function(resolve,reject) {
reject("fail");
});
}

View File

@@ -185,7 +185,6 @@ var request = require('supertest');
var express = require('express');
var bodyParser = require('body-parser');
var sinon = require('sinon');
var when = require('when');
var nodes = require("../../../../red/api/admin/nodes");
var apiUtil = require("../../../../red/api/util");
@@ -418,7 +417,7 @@ describe("api/admin/nodes", function() {
nodes:{
getModuleInfo: function(id) { return null; },
installModule: function() {
return when.resolve({
return Promise.resolve({
name:"foo",
nodes:[{id:"123"}]
});
@@ -446,7 +445,7 @@ describe("api/admin/nodes", function() {
nodes:{
getModuleInfo: function(id) { return {nodes:{id:"123"}}; },
installModule: function() {
return when.resolve({id:"123"});
return Promise.resolve({id:"123"});
}
}
});
@@ -468,7 +467,7 @@ describe("api/admin/nodes", function() {
nodes:{
getModuleInfo: function(id) { return null },
installModule: function() {
return when.reject(new Error("test error"));
return Promise.reject(new Error("test error"));
}
}
});
@@ -492,7 +491,7 @@ describe("api/admin/nodes", function() {
installModule: function() {
var err = new Error("test error");
err.code = 404;
return when.reject(err);
return Promise.reject(err);
}
}
});
@@ -533,7 +532,7 @@ describe("api/admin/nodes", function() {
nodes:{
getModuleInfo: function(id) { return {nodes:[{id:"123"}]} },
getNodeInfo: function() { return null },
uninstallModule: function() { return when.resolve({id:"123"});}
uninstallModule: function() { return Promise.resolve({id:"123"});}
}
});
request(app)
@@ -572,7 +571,7 @@ describe("api/admin/nodes", function() {
nodes:{
getModuleInfo: function(id) { return {nodes:[{id:"123"}]} },
getNodeInfo: function() { return null },
uninstallModule: function() { return when.reject(new Error("test error"));}
uninstallModule: function() { return Promise.reject(new Error("test error"));}
}
});
request(app)
@@ -686,7 +685,7 @@ describe("api/admin/nodes", function() {
settings:{available:function(){return true}},
nodes:{
getNodeInfo: function() { return {id:"123",enabled: false} },
enableNode: function() { return when.resolve({id:"123",enabled: true,types:['a']}); }
enableNode: function() { return Promise.resolve({id:"123",enabled: true,types:['a']}); }
}
});
request(app)
@@ -709,7 +708,7 @@ describe("api/admin/nodes", function() {
settings:{available:function(){return true}},
nodes:{
getNodeInfo: function() { return {id:"123",enabled: true} },
disableNode: function() { return when.resolve({id:"123",enabled: false,types:['a']}); }
disableNode: function() { return Promise.resolve({id:"123",enabled: false,types:['a']}); }
}
});
request(app)
@@ -729,8 +728,8 @@ describe("api/admin/nodes", function() {
describe('no-ops if already in the right state', function() {
function run(state,done) {
var enableNode = sinon.spy(function() { return when.resolve({id:"123",enabled: true,types:['a']}) });
var disableNode = sinon.spy(function() { return when.resolve({id:"123",enabled: false,types:['a']}) });
var enableNode = sinon.spy(function() { return Promise.resolve({id:"123",enabled: true,types:['a']}) });
var disableNode = sinon.spy(function() { return Promise.resolve({id:"123",enabled: false,types:['a']}) });
initNodes({
settings:{available:function(){return true}},
@@ -768,8 +767,8 @@ describe("api/admin/nodes", function() {
describe('does not no-op if err on node', function() {
function run(state,done) {
var enableNode = sinon.spy(function() { return when.resolve({id:"123",enabled: true,types:['a']}) });
var disableNode = sinon.spy(function() { return when.resolve({id:"123",enabled: false,types:['a']}) });
var enableNode = sinon.spy(function() { return Promise.resolve({id:"123",enabled: true,types:['a']}) });
var disableNode = sinon.spy(function() { return Promise.resolve({id:"123",enabled: false,types:['a']}) });
initNodes({
settings:{available:function(){return true}},
@@ -811,11 +810,11 @@ describe("api/admin/nodes", function() {
var enableNode = sinon.stub();
enableNode.onFirstCall().returns((function() {
n1.enabled = true;
return when.resolve(n1);
return Promise.resolve(n1);
})());
enableNode.onSecondCall().returns((function() {
n2.enabled = true;
return when.resolve(n2);
return Promise.resolve(n2);
})());
enableNode.returns(null);
initNodes({
@@ -849,11 +848,11 @@ describe("api/admin/nodes", function() {
var disableNode = sinon.stub();
disableNode.onFirstCall().returns((function() {
n1.enabled = false;
return when.resolve(n1);
return Promise.resolve(n1);
})());
disableNode.onSecondCall().returns((function() {
n2.enabled = false;
return when.resolve(n2);
return Promise.resolve(n2);
})());
disableNode.returns(null);
initNodes({
@@ -886,11 +885,11 @@ describe("api/admin/nodes", function() {
var node = {id:"123",enabled:state,types:['a']};
var enableNode = sinon.spy(function(id) {
node.enabled = true;
return when.resolve(node);
return Promise.resolve(node);
});
var disableNode = sinon.spy(function(id) {
node.enabled = false;
return when.resolve(node);
return Promise.resolve(node);
});
initNodes({
@@ -933,11 +932,11 @@ describe("api/admin/nodes", function() {
var node = {id:"123",enabled:state,types:['a'],err:"foo"};
var enableNode = sinon.spy(function(id) {
node.enabled = true;
return when.resolve(node);
return Promise.resolve(node);
});
var disableNode = sinon.spy(function(id) {
node.enabled = false;
return when.resolve(node);
return Promise.resolve(node);
});
initNodes({

View File

@@ -588,7 +588,6 @@ var comms = require("../../../../red/api/editor/comms");
var info = require("../../../../red/api/editor/settings");
var auth = require("../../../../red/api/auth");
var sshkeys = require("../../../../red/api/editor/sshkeys");
var when = require("when");
var bodyParser = require("body-parser");
var fs = require("fs-extra");
var fspath = require("path");
@@ -611,11 +610,11 @@ describe("api/editor/sshkeys", function() {
exportNodeSettings:function(){},
storage: {
getSessions: function(){
return when.resolve(session_data);
return Promise.resolve(session_data);
},
setSessions: function(_session) {
session_data = _session;
return when.resolve();
return Promise.resolve();
}
}
},

View File

@@ -16,7 +16,6 @@
var should = require("should");
var sinon = require("sinon");
var when = require("when");
var clone = require("clone");
var NR_TEST_UTILS = require("nr-test-utils");
@@ -65,13 +64,13 @@ describe('flows/index', function() {
conf.forEach(function(n) {
delete n.credentials;
});
return when.resolve();
return Promise.resolve();
});
credentialsLoad = sinon.stub(credentials,"load",function(creds) {
if (creds && creds.hasOwnProperty("$") && creds['$'] === "fail") {
return when.reject("creds error");
return Promise.reject("creds error");
}
return when.resolve();
return Promise.resolve();
});
flowCreate = sinon.stub(Flow,"create",function(parent, global, flow) {
var id;
@@ -101,7 +100,7 @@ describe('flows/index', function() {
storage = {
saveFlows: function(conf) {
storage.conf = conf;
return when.resolve();
return Promise.resolve();
}
}
});
@@ -145,10 +144,10 @@ describe('flows/index', function() {
var loadStorage = {
saveFlows: function(conf) {
loadStorage.conf = conf;
return when.resolve(456);
return Promise.resolve(456);
},
getFlows: function() {
return when.resolve({flows:originalConfig,rev:123})
return Promise.resolve({flows:originalConfig,rev:123})
}
}
flows.init({log:mockLog, settings:{},storage:loadStorage});
@@ -207,7 +206,7 @@ describe('flows/index', function() {
newConfig.push({id:"t2",type:"tab"});
newConfig.push({id:"t2-1",x:10,y:10,z:"t2",type:"test",wires:[]});
storage.getFlows = function() {
return when.resolve({flows:originalConfig});
return Promise.resolve({flows:originalConfig});
}
events.once('flows:started',function() {
flows.setFlows(newConfig,"nodes").then(function() {
@@ -235,7 +234,7 @@ describe('flows/index', function() {
newConfig.push({id:"t2",type:"tab"});
newConfig.push({id:"t2-1",x:10,y:10,z:"t2",type:"test",wires:[]});
storage.getFlows = function() {
return when.resolve({flows:originalConfig});
return Promise.resolve({flows:originalConfig});
}
events.once('flows:started',function() {
@@ -277,7 +276,7 @@ describe('flows/index', function() {
{id:"t1",type:"tab"}
];
storage.getFlows = function() {
return when.resolve({flows:originalConfig});
return Promise.resolve({flows:originalConfig});
}
flows.init({log:mockLog, settings:{},storage:storage});
flows.load().then(function() {
@@ -297,7 +296,7 @@ describe('flows/index', function() {
{id:"t1",type:"tab"}
];
storage.getFlows = function() {
return when.resolve({flows:originalConfig});
return Promise.resolve({flows:originalConfig});
}
events.once('flows:started',function() {
@@ -317,7 +316,7 @@ describe('flows/index', function() {
{id:"t1",type:"tab"}
];
storage.getFlows = function() {
return when.resolve({flows:originalConfig});
return Promise.resolve({flows:originalConfig});
}
flows.init({log:mockLog, settings:{},storage:storage});
@@ -336,7 +335,7 @@ describe('flows/index', function() {
{id:"t1",type:"tab"}
];
storage.getFlows = function() {
return when.resolve({flows:originalConfig});
return Promise.resolve({flows:originalConfig});
}
flows.init({log:mockLog, settings:{},storage:storage});
flows.load().then(function() {
@@ -370,7 +369,7 @@ describe('flows/index', function() {
{id:"t1",type:"tab"}
];
storage.getFlows = function() {
return when.resolve({flows:originalConfig});
return Promise.resolve({flows:originalConfig});
}
flows.init({log:mockLog, settings:{},storage:storage});
flows.load().then(function() {
@@ -394,7 +393,7 @@ describe('flows/index', function() {
// {id:"t1",type:"tab"}
// ];
// storage.getFlows = function() {
// return when.resolve({flows:originalConfig});
// return Promise.resolve({flows:originalConfig});
// }
//
// events.once('flows:started',function() {
@@ -419,7 +418,7 @@ describe('flows/index', function() {
// {id:"t3-1",x:10,y:10,z:"t3",type:"test",config:"configNode",wires:[]}
// ];
// storage.getFlows = function() {
// return when.resolve({flows:originalConfig});
// return Promise.resolve({flows:originalConfig});
// }
//
// events.once('flows:started',function() {
@@ -447,7 +446,7 @@ describe('flows/index', function() {
// {id:"t1",type:"tab"}
// ];
// storage.getFlows = function() {
// return when.resolve({flows:originalConfig});
// return Promise.resolve({flows:originalConfig});
// }
//
// events.once('flows:started',function() {
@@ -473,7 +472,7 @@ describe('flows/index', function() {
// {id:"t3-1",x:10,y:10,z:"t3",type:"test",config:"configNode",wires:[]}
// ];
// storage.getFlows = function() {
// return when.resolve({flows:originalConfig});
// return Promise.resolve({flows:originalConfig});
// }
//
// events.once('flows:started',function() {
@@ -548,7 +547,7 @@ describe('flows/index', function() {
{id:"t1",type:"tab"}
];
storage.getFlows = function() {
return when.resolve({flows:originalConfig});
return Promise.resolve({flows:originalConfig});
}
flows.init({log:mockLog, settings:{},storage:storage});
flows.load().then(function() {
@@ -572,10 +571,10 @@ describe('flows/index', function() {
{id:"t1",type:"tab"}
];
storage.getFlows = function() {
return when.resolve({flows:originalConfig});
return Promise.resolve({flows:originalConfig});
}
storage.setFlows = function() {
return when.resolve();
return Promise.resolve();
}
flows.init({log:mockLog, settings:{},storage:storage});
flows.load().then(function() {

View File

@@ -16,7 +16,6 @@
var should = require("should");
var sinon = require("sinon");
var when = require("when");
var clone = require("clone");
var NR_TEST_UTILS = require("nr-test-utils");
var flowUtil = NR_TEST_UTILS.require("@node-red/runtime/lib/flows/util");

View File

@@ -16,7 +16,6 @@
var should = require("should");
var sinon = require("sinon");
var when = require("when");
var util = require("util");
var NR_TEST_UTILS = require("nr-test-utils");
@@ -228,11 +227,11 @@ describe('red/runtime/nodes/credentials', function() {
},
set: function(key,value) {
settings[key] = value;
return when.resolve();
return Promise.resolve();
},
delete: function(key) {
delete settings[key];
return when.resolve();
return Promise.resolve();
}
}
}

View File

@@ -17,7 +17,6 @@
var should = require("should");
var fs = require('fs-extra');
var path = require('path');
var when = require("when");
var sinon = require('sinon');
var inherits = require("util").inherits;
@@ -47,11 +46,11 @@ describe("red/nodes/index", function() {
var testCredentials = {"tab1":{"b":1, "c":"2", "d":"$(foo)"}};
var storage = {
getFlows: function() {
return when({red:123,flows:testFlows,credentials:testCredentials});
return Promise.resolve({red:123,flows:testFlows,credentials:testCredentials});
},
saveFlows: function(conf) {
should.deepEqual(testFlows, conf.flows);
return when.resolve(123);
return Promise.resolve(123);
}
};
@@ -182,12 +181,12 @@ describe("red/nodes/index", function() {
fs.remove(userDir,function(err) {
fs.mkdir(userDir,function() {
sinon.stub(index, 'load', function() {
return when.promise(function(resolve,reject){
return new Promise(function(resolve,reject){
resolve([]);
});
});
sinon.stub(localfilesystem, 'getCredentials', function() {
return when.promise(function(resolve,reject) {
return new Promise(function(resolve,reject) {
resolve({"tab1":{"b":1,"c":2}});
});
}) ;
@@ -282,7 +281,7 @@ describe("red/nodes/index", function() {
}
});
sinon.stub(registry,"disableNode",function(id) {
return when.resolve(randomNodeInfo);
return Promise.resolve(randomNodeInfo);
});
});
afterEach(function() {

View File

@@ -13,7 +13,6 @@
* See the License for the specific language governing permissions and
* limitations under the License.
**/
var when = require("when");
var should = require("should");
var paff = require('path');
@@ -79,16 +78,16 @@ describe("red/storage/index", function() {
},
getFlows : function() {
calledFlagGetFlows = true;
return when.resolve([]);
return Promise.resolve([]);
},
saveFlows : function (flows) {
flows.should.be.an.Array();
flows.should.have.lengthOf(0);
return when.resolve("");
return Promise.resolve("");
},
getCredentials : function() {
calledFlagGetCredentials = true;
return when.resolve({});
return Promise.resolve({});
},
saveCredentials : function(credentials) {
credentials.should.be.true();
@@ -147,7 +146,7 @@ describe("red/storage/index", function() {
storage.getLibraryEntry(true, "name");
storage.saveLibraryEntry(true, "name", true, true);
when.settle(promises).then(function() {
Promise.all(promises).then(function() {
try {
calledInit.should.be.true();
calledFlagGetFlows.should.be.true();
@@ -174,11 +173,11 @@ describe("red/storage/index", function() {
getLibraryEntry : function(type, path) {
if (type === "flows") {
if (path === "/" || path === "\\") {
return when.resolve(["a",{fn:"test.json"}]);
return Promise.resolve(["a",{fn:"test.json"}]);
} else if (path == "/a" || path == "\\a") {
return when.resolve([{fn:"test2.json"}]);
return Promise.resolve([{fn:"test2.json"}]);
} else if (path == paff.join("","a","test2.json")) {
return when.resolve("test content");
return Promise.resolve("test content");
}
}
},
@@ -187,7 +186,7 @@ describe("red/storage/index", function() {
savePath = path;
saveContent = body;
saveMeta = meta;
return when.resolve();
return Promise.resolve();
}
};