diff options
author | GitLab Bot <gitlab-bot@gitlab.com> | 2020-03-12 09:09:55 +0000 |
---|---|---|
committer | GitLab Bot <gitlab-bot@gitlab.com> | 2020-03-12 09:09:55 +0000 |
commit | 18f7828977b74bf6e5153594a098ef90e773b3b7 (patch) | |
tree | 49cb1e16d5341d773807ee583357ae6eb167d61f /spec/frontend/blob | |
parent | 8191b1571c017378eac33b3ed296ad5216d0a410 (diff) | |
download | gitlab-ce-18f7828977b74bf6e5153594a098ef90e773b3b7.tar.gz |
Add latest changes from gitlab-org/gitlab@master
Diffstat (limited to 'spec/frontend/blob')
-rw-r--r-- | spec/frontend/blob/blob_file_dropzone_spec.js | 50 |
1 files changed, 50 insertions, 0 deletions
diff --git a/spec/frontend/blob/blob_file_dropzone_spec.js b/spec/frontend/blob/blob_file_dropzone_spec.js new file mode 100644 index 00000000000..4e9a05418df --- /dev/null +++ b/spec/frontend/blob/blob_file_dropzone_spec.js @@ -0,0 +1,50 @@ +import $ from 'jquery'; +import BlobFileDropzone from '~/blob/blob_file_dropzone'; + +describe('BlobFileDropzone', () => { + preloadFixtures('blob/show.html'); + let dropzone; + let replaceFileButton; + const jQueryMock = { + enable: jest.fn(), + disable: jest.fn(), + }; + + beforeEach(() => { + loadFixtures('blob/show.html'); + const form = $('.js-upload-blob-form'); + // eslint-disable-next-line no-new + new BlobFileDropzone(form, 'POST'); + dropzone = $('.js-upload-blob-form .dropzone').get(0).dropzone; + dropzone.processQueue = jest.fn(); + replaceFileButton = $('#submit-all'); + $.fn.extend(jQueryMock); + }); + + describe('submit button', () => { + it('requires file', () => { + jest.spyOn(window, 'alert').mockImplementation(() => {}); + + replaceFileButton.click(); + + expect(window.alert).toHaveBeenCalled(); + }); + + it('is disabled while uploading', () => { + jest.spyOn(window, 'alert').mockImplementation(() => {}); + + const file = new File([], 'some-file.jpg'); + const fakeEvent = $.Event('drop', { + dataTransfer: { files: [file] }, + }); + + dropzone.listeners[0].events.drop(fakeEvent); + + replaceFileButton.click(); + + expect(window.alert).not.toHaveBeenCalled(); + expect(jQueryMock.enable).toHaveBeenCalled(); + expect(dropzone.processQueue).toHaveBeenCalled(); + }); + }); +}); |