test: fix tests, dont hang if payload is string

closes #11933
This commit is contained in:
Barış Soner Uşaklı
2023-08-19 16:40:43 -04:00
parent 82d95ba812
commit 6b09b7c7d4
4 changed files with 14 additions and 13 deletions

View File

@@ -20,7 +20,7 @@ chatsController.get = async function (req, res, next) {
}
const canChat = await privileges.global.can('chat', req.uid);
if (!canChat) {
return helpers.notAllowed(req, res, '[[error:no-privileges]]');
return helpers.notAllowed(req, res);
}
const payload = {

View File

@@ -475,8 +475,8 @@ helpers.formatApiResponse = async (statusCode, res, payload) => {
status: { code, message },
response: payload || {},
});
} else if (payload instanceof Error) {
const { message } = payload;
} else if (payload instanceof Error || typeof payload === 'string') {
const message = payload instanceof Error ? payload.message : payload;
const response = {};
// Update status code based on some common error codes
@@ -512,9 +512,10 @@ helpers.formatApiResponse = async (statusCode, res, payload) => {
process.stdout.write(payload.stack);
}
res.status(statusCode).json(returnPayload);
} else if (!payload) {
} else {
// Non-2xx statusCode, generate predefined error
const returnPayload = await helpers.generateError(statusCode, null, res);
const message = payload ? String(payload) : null;
const returnPayload = await helpers.generateError(statusCode, message, res);
res.status(statusCode).json(returnPayload);
}
};

View File

@@ -447,17 +447,17 @@ module.exports = function (Messaging) {
user.isAdministrator(uid),
user.isGlobalModerator(uid),
]);
if (!canChat) {
throw new Error('[[error:no-privileges]]');
if (!room) {
return null;
}
if (!room ||
if (!canChat ||
(!room.public && !inRoom) ||
(room.public && (
Array.isArray(room.groups) && room.groups.length && !isAdmin && !(await groups.isMemberOfAny(uid, room.groups)))
)
) {
return null;
throw new Error('[[error:no-privileges]]');
}
// add user to public room onload