fix: added back missing topic thumb tests that were removed in last commit

v1.18.x
Julian Lam 4 years ago
parent 5ec3b3d083
commit c043cfebd6

@ -470,6 +470,11 @@ helpers.generateError = (statusCode, message) => {
payload.status.code = 'not-implemented'; payload.status.code = 'not-implemented';
payload.status.message = message || 'The route you are trying to call is not implemented yet, please try again tomorrow'; payload.status.message = message || 'The route you are trying to call is not implemented yet, please try again tomorrow';
break; break;
case 503:
payload.status.code = 'service-unavailable';
payload.status.message = message || 'The route you are trying to call is not currently available due to a server configuration';
break;
} }
return payload; return payload;

@ -109,10 +109,10 @@ async function resizeImage(fileObj) {
return fileObj; return fileObj;
} }
uploadsController.uploadThumb = async function (req, res, next) { uploadsController.uploadThumb = async function (req, res) {
if (!meta.config.allowTopicsThumbnail) { if (!meta.config.allowTopicsThumbnail) {
deleteTempFiles(req.files.files); deleteTempFiles(req.files.files);
return next(new Error('[[error:topic-thumbnails-are-disabled]]')); return helpers.formatApiResponse(503, res, new Error('[[error:topic-thumbnails-are-disabled]]'));
} }
return await uploadsController.upload(req, res, async function (uploadedFile) { return await uploadsController.upload(req, res, async function (uploadedFile) {

@ -94,13 +94,13 @@ Topics.getThumbs = async (req, res) => {
helpers.formatApiResponse(200, res, await topics.thumbs.get(req.params.tid)); helpers.formatApiResponse(200, res, await topics.thumbs.get(req.params.tid));
}; };
Topics.addThumb = async (req, res, next) => { Topics.addThumb = async (req, res) => {
await checkThumbPrivileges({ tid: req.params.tid, uid: req.user.uid, res }); await checkThumbPrivileges({ tid: req.params.tid, uid: req.user.uid, res });
if (res.headersSent) { if (res.headersSent) {
return; return;
} }
const files = await uploadsController.uploadThumb(req, res, next); // response is handled here const files = await uploadsController.uploadThumb(req, res); // response is handled here
// Add uploaded files to topic zset // Add uploaded files to topic zset
if (files && files.length) { if (files && files.length) {

@ -193,5 +193,30 @@ describe('Topic thumbs', () => {
done(); done();
}); });
}); });
it('should fail if thumbnails are not enabled', (done) => {
meta.config.allowTopicsThumbnail = 0;
helpers.uploadFile(`${nconf.get('url')}/api/v3/topics/${uuid}/thumbs`, path.join(__dirname, '../files/test.png'), {}, adminJar, adminCSRF, function (err, res, body) {
assert.ifError(err);
assert.strictEqual(res.statusCode, 503);
assert(body && body.status);
assert.strictEqual(body.status.message, '[[error:topic-thumbnails-are-disabled]]');
done();
});
});
it('should fail if file is not image', function (done) {
meta.config.allowTopicsThumbnail = 1;
helpers.uploadFile(`${nconf.get('url')}/api/v3/topics/${uuid}/thumbs`, path.join(__dirname, '../files/503.html'), {}, adminJar, adminCSRF, function (err, res, body) {
assert.ifError(err);
console.log(body);
assert.strictEqual(res.statusCode, 500);
assert(body && body.status);
assert.strictEqual(body.status.message, '[[error:invalid-file]]');
done();
});
});
}); });
}); });

Loading…
Cancel
Save