Move filename validation out of the Router and into the FilesAdaptor (#6157)
* Move filename validation out of the Router and into the FilesAdaptor * Address PR comments * Update unittests to handle FilesAdapter interface change * Make validateFilename optional
This commit is contained in:
committed by
Diamond Lewis
parent
93fe6b44e4
commit
1c8d4a6519
@@ -64,6 +64,7 @@ describe('AdaptableController', () => {
|
||||
deleteFile: function() {},
|
||||
getFileData: function() {},
|
||||
getFileLocation: function() {},
|
||||
validateFilename: function() {},
|
||||
};
|
||||
expect(() => {
|
||||
new FilesController(adapter);
|
||||
@@ -77,6 +78,7 @@ describe('AdaptableController', () => {
|
||||
AGoodAdapter.prototype.deleteFile = function() {};
|
||||
AGoodAdapter.prototype.getFileData = function() {};
|
||||
AGoodAdapter.prototype.getFileLocation = function() {};
|
||||
AGoodAdapter.prototype.validateFilename = function() {};
|
||||
|
||||
const adapter = new AGoodAdapter();
|
||||
expect(() => {
|
||||
|
||||
@@ -4,6 +4,8 @@ const WinstonLoggerAdapter = require('../lib/Adapters/Logger/WinstonLoggerAdapte
|
||||
.WinstonLoggerAdapter;
|
||||
const GridFSBucketAdapter = require('../lib/Adapters/Files/GridFSBucketAdapter')
|
||||
.GridFSBucketAdapter;
|
||||
const GridStoreAdapter = require('../lib/Adapters/Files/GridStoreAdapter')
|
||||
.GridStoreAdapter;
|
||||
const Config = require('../lib/Config');
|
||||
const FilesController = require('../lib/Controllers/FilesController').default;
|
||||
|
||||
@@ -14,6 +16,7 @@ const mockAdapter = {
|
||||
deleteFile: () => {},
|
||||
getFileData: () => {},
|
||||
getFileLocation: () => 'xyz',
|
||||
validateFilename: () => {},
|
||||
};
|
||||
|
||||
// Small additional tests to improve overall coverage
|
||||
@@ -118,4 +121,22 @@ describe('FilesController', () => {
|
||||
|
||||
done();
|
||||
});
|
||||
|
||||
it('should reject slashes in file names', done => {
|
||||
const gridStoreAdapter = new GridFSBucketAdapter(
|
||||
'mongodb://localhost:27017/parse'
|
||||
);
|
||||
const fileName = 'foo/randomFileName.pdf';
|
||||
expect(gridStoreAdapter.validateFilename(fileName)).not.toBe(null);
|
||||
done();
|
||||
});
|
||||
|
||||
it('should also reject slashes in file names', done => {
|
||||
const gridStoreAdapter = new GridStoreAdapter(
|
||||
'mongodb://localhost:27017/parse'
|
||||
);
|
||||
const fileName = 'foo/randomFileName.pdf';
|
||||
expect(gridStoreAdapter.validateFilename(fileName)).not.toBe(null);
|
||||
done();
|
||||
});
|
||||
});
|
||||
|
||||
Reference in New Issue
Block a user