fix: NodeBB#11482 thumbs Post Can not upload a thumbnail, only multip… (#11483)

* fix: NodeBB#11482 thumbs Post Can not upload a thumbnail, only multiple uploads

* Modify upload thumbnail test

* Modify upload thumbnail test +,

* Get rid of v2 uploads test

* edit times

* Modify amount of files associated post test

* edit post file amount
isekai-main
Veronikya 2 years ago committed by GitHub
parent ae5afdbc66
commit c931183287
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

@ -102,11 +102,20 @@ middleware.pluginHooks = helpers.try(async (req, res, next) => {
}); });
middleware.validateFiles = function validateFiles(req, res, next) { middleware.validateFiles = function validateFiles(req, res, next) {
if (!Array.isArray(req.files.files) || !req.files.files.length) { if (!req.files.files) {
return next(new Error(['[[error:invalid-files]]'])); return next(new Error(['[[error:invalid-files]]']));
} }
next(); if (Array.isArray(req.files.files) && req.files.files.length) {
return next();
}
if (typeof req.files.files === 'object') {
req.files.files = [req.files.files];
return next();
}
return next(new Error(['[[error:invalid-files]]']));
}; };
middleware.prepareAPI = function prepareAPI(req, res, next) { middleware.prepareAPI = function prepareAPI(req, res, next) {

@ -121,7 +121,6 @@ helpers.uploadFile = function (uploadEndPoint, filePath, body, jar, csrf_token,
let formData = { let formData = {
files: [ files: [
fs.createReadStream(filePath), fs.createReadStream(filePath),
fs.createReadStream(filePath), // see https://github.com/request/request/issues/2445
], ],
}; };
formData = utils.merge(formData, body); formData = utils.merge(formData, body);

@ -88,7 +88,7 @@ describe('Upload Controllers', () => {
meta.config.allowedFileExtensions = 'png,jpg,bmp,html'; meta.config.allowedFileExtensions = 'png,jpg,bmp,html';
require('../src/middleware/uploads').clearCache(); require('../src/middleware/uploads').clearCache();
// why / 2? see: helpers.uploadFile for a weird quirk where we actually upload 2 files per upload in our tests. // why / 2? see: helpers.uploadFile for a weird quirk where we actually upload 2 files per upload in our tests.
const times = (meta.config.uploadRateLimitThreshold / 2) + 1; const times = (meta.config.uploadRateLimitThreshold) + 1;
async.timesSeries(times, (i, next) => { async.timesSeries(times, (i, next) => {
helpers.uploadFile(`${nconf.get('url')}/api/post/upload`, path.join(__dirname, '../test/files/503.html'), {}, jar, csrf_token, (err, res, body) => { helpers.uploadFile(`${nconf.get('url')}/api/post/upload`, path.join(__dirname, '../test/files/503.html'), {}, jar, csrf_token, (err, res, body) => {
if (i + 1 >= times) { if (i + 1 >= times) {
@ -522,7 +522,7 @@ describe('Upload Controllers', () => {
it('should return files with no post associated with them', async () => { it('should return files with no post associated with them', async () => {
const orphans = await posts.uploads.getOrphans(); const orphans = await posts.uploads.getOrphans();
assert.strictEqual(orphans.length, 2); assert.strictEqual(orphans.length, 1);
orphans.forEach((relPath) => { orphans.forEach((relPath) => {
assert(relPath.startsWith('files/')); assert(relPath.startsWith('files/'));
assert(relPath.endsWith('test.png')); assert(relPath.endsWith('test.png'));
@ -553,7 +553,7 @@ describe('Upload Controllers', () => {
await posts.uploads.cleanOrphans(); await posts.uploads.cleanOrphans();
const orphans = await posts.uploads.getOrphans(); const orphans = await posts.uploads.getOrphans();
assert.strictEqual(orphans.length, 2); assert.strictEqual(orphans.length, 1);
}); });
it('should not touch orphans if they are newer than the configured expiry', async () => { it('should not touch orphans if they are newer than the configured expiry', async () => {
@ -561,7 +561,7 @@ describe('Upload Controllers', () => {
await posts.uploads.cleanOrphans(); await posts.uploads.cleanOrphans();
const orphans = await posts.uploads.getOrphans(); const orphans = await posts.uploads.getOrphans();
assert.strictEqual(orphans.length, 2); assert.strictEqual(orphans.length, 1);
}); });
it('should delete orphans older than the configured number of days', async () => { it('should delete orphans older than the configured number of days', async () => {

Loading…
Cancel
Save