diff --git a/webapp/components/ImageUploader/ImageUploader.spec.js b/webapp/components/ImageUploader/ImageUploader.spec.js index ed3ecb1f9..29d6d9468 100644 --- a/webapp/components/ImageUploader/ImageUploader.spec.js +++ b/webapp/components/ImageUploader/ImageUploader.spec.js @@ -27,11 +27,17 @@ describe('ImageUploader.vue', () => { beforeEach(() => jest.useFakeTimers()) const message = 'File upload failed' const fileError = { status: 'error' } + const unSupportedFileMessage = + 'Please upload an image of file format : jpg , jpeg , png or gif' it('shows an error toaster when verror is called', () => { wrapper.vm.onDropzoneError(fileError, message) expect(mocks.$toast.error).toHaveBeenCalledWith(fileError.status, message) }) + it('shows an error toaster when unSupported file is uploaded', () => { + wrapper.vm.onUnSupportedFormat(fileError.status, unSupportedFileMessage) + expect(mocks.$toast.error).toHaveBeenCalledWith(fileError.status, unSupportedFileMessage) + }) }) }) }) diff --git a/webapp/components/ImageUploader/ImageUploader.vue b/webapp/components/ImageUploader/ImageUploader.vue index b3ea5aa49..37c0fcc18 100644 --- a/webapp/components/ImageUploader/ImageUploader.vue +++ b/webapp/components/ImageUploader/ImageUploader.vue @@ -62,6 +62,7 @@ export default { url: () => '', maxFilesize: 5.0, previewTemplate: '', + acceptedFiles: '.png,.jpg,.jpeg,.gif', }, cropper: null, file: null, @@ -73,7 +74,20 @@ export default { onDropzoneError(file, message) { this.$toast.error(file.status, message) }, + + onUnSupportedFormat(status, message) { + this.$toast.error(status, message) + }, initCropper(file) { + const supportedFormats = ['image/jpg', 'image/jpeg', 'image/png', 'image/gif'] + + if (supportedFormats.indexOf(file.type) < 0) { + this.onUnSupportedFormat( + 'error', + 'Please upload an image of file format : jpg , jpeg , png or gif', + ) + return + } this.showCropper = true this.file = file