diff options
author | sbigelow <sbigelow@gitlab.com> | 2018-11-14 11:01:37 -0500 |
---|---|---|
committer | sbigelow <sbigelow@gitlab.com> | 2018-11-15 09:21:13 -0500 |
commit | 2c51fad3fdcc3dc5ae4560d1700258a8c4bab02e (patch) | |
tree | d41c057cda928de88da4bcf9d23ad04db24dafb7 | |
parent | b43d919b0cc6e7b8ab2716086f56bb984e85ca4e (diff) | |
download | gitlab-ce-53728-warn-in-web-editor-when-user-navigates-away.tar.gz |
Test warning before leaving file edit page53728-warn-in-web-editor-when-user-navigates-away
3 files changed, 26 insertions, 2 deletions
diff --git a/app/assets/javascripts/blob_edit/blob_bundle.js b/app/assets/javascripts/blob_edit/blob_bundle.js index e069e236e6f..9f547471170 100644 --- a/app/assets/javascripts/blob_edit/blob_bundle.js +++ b/app/assets/javascripts/blob_edit/blob_bundle.js @@ -19,7 +19,7 @@ export default () => { const commitButton = $('.js-commit-button'); commitButton.on('click', () => { - window.onbeforeunload = undefined; + window.onbeforeunload = null; }); new EditBlob(`${urlRoot}${assetsPath}`, filePath, currentAction, projectId); diff --git a/changelogs/unreleased/53728-warn-in-web-editor-when-user-navigates-away.yml b/changelogs/unreleased/53728-warn-in-web-editor-when-user-navigates-away.yml new file mode 100644 index 00000000000..8377fdc6133 --- /dev/null +++ b/changelogs/unreleased/53728-warn-in-web-editor-when-user-navigates-away.yml @@ -0,0 +1,5 @@ +--- +title: Prevent user from navigating away from file edit without commit +merge_request: +author: +type: fixed diff --git a/spec/javascripts/blob_edit/blob_bundle_spec.js b/spec/javascripts/blob_edit/blob_bundle_spec.js index 8aab0bb167b..759d170af77 100644 --- a/spec/javascripts/blob_edit/blob_bundle_spec.js +++ b/spec/javascripts/blob_edit/blob_bundle_spec.js @@ -1,11 +1,30 @@ import blobBundle from '~/blob_edit/blob_bundle'; +import $ from 'jquery'; + +window.ace = { + config: { + set: () => {}, + loadModule: () => {}, + }, + edit: () => ({ focus: () => {} }), +}; describe('EditBlob', () => { - it('sets the window beforeunload listener to a function returning a string', () => { + beforeEach(() => { + setFixtures(` + <div class="js-edit-blob-form"> + <button class="js-commit-button"></button> + </div>`); + blobBundle(); + }); + it('sets the window beforeunload listener to a function returning a string', () => { + expect(window.onbeforeunload()).toBe(''); }); it('removes beforeunload listener if commit button is clicked', () => { + $('.js-commit-button').click(); + expect(window.onbeforeunload).toBeNull(); }); }); |