diff options
author | Mike Greiling <mike@pixelcog.com> | 2018-09-06 22:56:10 +0000 |
---|---|---|
committer | Mike Greiling <mike@pixelcog.com> | 2018-09-06 22:56:10 +0000 |
commit | d96d0ec17dd37513e57988643fef65ae7773815a (patch) | |
tree | d2c63405098eff48fe5cc20ee9c9aa84fd4740cd /spec/javascripts | |
parent | 13202722c8f20e0c7ef1d51e374c79776e43c466 (diff) | |
parent | 8a7b247fa30022e163660a244a74f5807088ffaf (diff) | |
download | gitlab-ce-d96d0ec17dd37513e57988643fef65ae7773815a.tar.gz |
Merge branch '33475-files-inside-wiki-repo-fe' into 'master'
FE for "Uploads to a wiki should be stored inside the wiki git repository"
See merge request gitlab-org/gitlab-ce!21466
Diffstat (limited to 'spec/javascripts')
-rw-r--r-- | spec/javascripts/dropzone_input_spec.js | 68 |
1 files changed, 68 insertions, 0 deletions
diff --git a/spec/javascripts/dropzone_input_spec.js b/spec/javascripts/dropzone_input_spec.js new file mode 100644 index 00000000000..0c6b1a8946d --- /dev/null +++ b/spec/javascripts/dropzone_input_spec.js @@ -0,0 +1,68 @@ +import $ from 'jquery'; +import dropzoneInput from '~/dropzone_input'; +import { TEST_HOST } from 'spec/test_constants'; + +const TEST_FILE = { + upload: {}, +}; +const TEST_UPLOAD_PATH = `${TEST_HOST}/upload/file`; +const TEST_ERROR_MESSAGE = 'A big error occurred!'; +const TEMPLATE = ( +`<form class="gfm-form" data-uploads-path="${TEST_UPLOAD_PATH}"> + <textarea class="js-gfm-input"></textarea> + <div class="uploading-error-message"></div> +</form>` +); + +describe('dropzone_input', () => { + let form; + let dropzone; + let xhr; + let oldXMLHttpRequest; + + beforeEach(() => { + form = $(TEMPLATE); + + dropzone = dropzoneInput(form); + + xhr = jasmine.createSpyObj(Object.keys(XMLHttpRequest.prototype)); + oldXMLHttpRequest = window.XMLHttpRequest; + window.XMLHttpRequest = () => xhr; + }); + + afterEach(() => { + window.XMLHttpRequest = oldXMLHttpRequest; + }); + + it('shows error message, when AJAX fails with json', () => { + xhr = { + ...xhr, + statusCode: 400, + readyState: 4, + responseText: JSON.stringify({ message: TEST_ERROR_MESSAGE }), + getResponseHeader: () => 'application/json', + }; + + dropzone.processFile(TEST_FILE); + + xhr.onload(); + + expect(form.find('.uploading-error-message').text()).toEqual(TEST_ERROR_MESSAGE); + }); + + it('shows error message, when AJAX fails with text', () => { + xhr = { + ...xhr, + statusCode: 400, + readyState: 4, + responseText: TEST_ERROR_MESSAGE, + getResponseHeader: () => 'text/plain', + }; + + dropzone.processFile(TEST_FILE); + + xhr.onload(); + + expect(form.find('.uploading-error-message').text()).toEqual(TEST_ERROR_MESSAGE); + }); +}); |