summaryrefslogtreecommitdiff
path: root/spec/frontend/blob
diff options
context:
space:
mode:
authorGitLab Bot <gitlab-bot@gitlab.com>2020-03-12 09:09:55 +0000
committerGitLab Bot <gitlab-bot@gitlab.com>2020-03-12 09:09:55 +0000
commit18f7828977b74bf6e5153594a098ef90e773b3b7 (patch)
tree49cb1e16d5341d773807ee583357ae6eb167d61f /spec/frontend/blob
parent8191b1571c017378eac33b3ed296ad5216d0a410 (diff)
downloadgitlab-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.js50
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();
+ });
+ });
+});