Fixup all the tests

This commit is contained in:
Nick O'Leary
2018-04-24 15:01:49 +01:00
parent 34832d5942
commit 5d064aa1d7
50 changed files with 3480 additions and 1762 deletions

View File

@@ -15,6 +15,7 @@
**/
var runtimeAPI;
var apiUtils = require("../util");
module.exports = {
init: function(_runtimeAPI) {
@@ -23,7 +24,7 @@ module.exports = {
get: function(req,res) {
var version = req.get("Node-RED-API-Version")||"v1";
if (!/^v[12]$/.test(version)) {
return res.status(500).json({code:"invalid_api_version", message:"Invalid API Version requested"});
return res.status(400).json({code:"invalid_api_version", message:"Invalid API Version requested"});
}
var opts = {
user: req.user
@@ -41,7 +42,7 @@ module.exports = {
post: function(req,res) {
var version = req.get("Node-RED-API-Version")||"v1";
if (!/^v[12]$/.test(version)) {
return res.status(500).json({code:"invalid_api_version", message:"Invalid API Version requested"});
return res.status(400).json({code:"invalid_api_version", message:"Invalid API Version requested"});
}
var opts = {
user: req.user,

View File

@@ -56,7 +56,7 @@ module.exports = {
user: req.user,
module: req.params[0]
}
runtimeAPI.nodes.removeModule(opts).then(function(info) {
runtimeAPI.nodes.removeModule(opts).then(function() {
res.status(204).end();
}).catch(function(err) {
apiUtils.rejectHandler(req,res,err);
@@ -77,7 +77,7 @@ module.exports = {
} else {
opts.lang = apiUtils.determineLangFromHeaders(req.acceptsLanguages());
runtimeAPI.nodes.getNodeConfig(opts).then(function(result) {
return res.json(result);
return res.send(result);
}).catch(function(err) {
apiUtils.rejectHandler(req,res,err);
})
@@ -100,7 +100,7 @@ module.exports = {
var body = req.body;
if (!body.hasOwnProperty("enabled")) {
// log.audit({event: "nodes.module.set",error:"invalid_request"},req);
res.status(400).json({error:"invalid_request", message:"Invalid request"});
res.status(400).json({code:"invalid_request", message:"Invalid request"});
return;
}
var opts = {
@@ -119,7 +119,7 @@ module.exports = {
var body = req.body;
if (!body.hasOwnProperty("enabled")) {
// log.audit({event: "nodes.module.set",error:"invalid_request"},req);
res.status(400).json({error:"invalid_request", message:"Invalid request"});
res.status(400).json({code:"invalid_request", message:"Invalid request"});
return;
}
var opts = {

View File

@@ -28,6 +28,8 @@ var runtimeAPI;
var wsServer;
var activeConnections = [];
var anonymousUser;
var retained = {};
var heartbeatTimer;
@@ -173,7 +175,8 @@ CommsConnection.prototype.subscribe = function(topic) {
function start() {
if (!settings.disableEditor) {
Users.default().then(function(anonymousUser) {
Users.default().then(function(_anonymousUser) {
anonymousUser = _anonymousUser;
var webSocketKeepAliveTime = settings.webSocketKeepAliveTime || 15000;
var path = settings.httpAdminRoot || "/";
path = (path.slice(0,1) != "/" ? "/":"") + path + (path.slice(-1) == "/" ? "":"/") + "comms";

View File

@@ -89,7 +89,6 @@ module.exports = {
// Library
var library = require("./library");
library.init(runtimeAPI);
editorApp.get("/library/flows",needsPermission("library.read"),library.getAll,apiUtil.errorHandler);
editorApp.get(/library\/([^\/]+)(?:$|\/(.*))/,needsPermission("library.read"),library.getEntry);
editorApp.post(/library\/([^\/]+)\/(.*)/,needsPermission("library.write"),library.saveEntry);
@@ -107,7 +106,7 @@ module.exports = {
// User Settings
editorApp.post("/settings/user",needsPermission("settings.write"),info.updateUserSettings,apiUtil.errorHandler);
// SSH keys
editorApp.use("/settings/user/keys",info.sshkeys());
editorApp.use("/settings/user/keys",needsPermission("settings.write"),info.sshkeys());
return editorApp;
}

View File

@@ -14,9 +14,9 @@
* limitations under the License.
**/
var apiUtils = require("../util");
var express = require("express");
var runtimeAPI;
var needsPermission = require("../auth").needsPermission;
function getUsername(userObj) {
var username = '__default';
@@ -34,7 +34,7 @@ module.exports = {
var app = express();
// List all SSH keys
app.get("/", needsPermission("settings.read"), function(req,res) {
app.get("/", function(req,res) {
var opts = {
user: req.user
}
@@ -48,7 +48,7 @@ module.exports = {
});
// Get SSH key detail
app.get("/:id", needsPermission("settings.read"), function(req,res) {
app.get("/:id", function(req,res) {
var opts = {
user: req.user,
id: req.params.id
@@ -63,11 +63,17 @@ module.exports = {
});
// Generate a SSH key
app.post("/", needsPermission("settings.write"), function(req,res) {
app.post("/", function(req,res) {
var opts = {
user: req.user,
id: req.params.id
}
// TODO: validate params
opts.name = req.body.name;
opts.password = req.body.password;
opts.comment = req.body.comment;
opts.size = req.body.size;
runtimeAPI.settings.generateUserKey(opts).then(function(name) {
res.json({
name: name
@@ -78,12 +84,12 @@ module.exports = {
});
// Delete a SSH key
app.delete("/:id", needsPermission("settings.write"), function(req,res) {
app.delete("/:id", function(req,res) {
var opts = {
user: req.user,
id: req.params.id
}
runtimeAPI.settings.generateUserKey(opts).then(function(name) {
runtimeAPI.settings.removeUserKey(opts).then(function(name) {
res.status(204).end();
}).catch(function(err) {
apiUtils.rejectHandler(req,res,err);

View File

@@ -89,23 +89,9 @@ module.exports = {
init: init,
start: start,
stop: stop,
library: {
register: function(type) {
if (editor) {
editor.registerLibrary(type);
}
}
},
auth: {
needsPermission: auth.needsPermission
},
comms: {
publish: function(topic,data,retain) {
if (editor) {
editor.publish(topic,data,retain);
}
}
},
get adminApp() { return adminApp; },
get server() { return server; }
};

View File

@@ -21,7 +21,6 @@ var i18n = require("../util").i18n; // TODO: separate module
module.exports = {
errorHandler: function(err,req,res,next) {
console.error(err.stack);
if (err.message === "request entity too large") {
log.error(err);
} else {
@@ -40,13 +39,9 @@ module.exports = {
return lang;
},
rejectHandler: function(req,res,err) {
res.status(err.status||500);
if (err.code || err.message) {
res.json({
code: err.code||"unexpected_error",
message: err.message
})
}
res.end();
res.status(err.status||500).json({
code: err.code||"unexpected_error",
message: err.message||err.toString()
});
}
}