summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorsbigelow <sbigelow@gitlab.com>2018-11-14 11:01:37 -0500
committersbigelow <sbigelow@gitlab.com>2018-11-15 09:21:13 -0500
commit2c51fad3fdcc3dc5ae4560d1700258a8c4bab02e (patch)
treed41c057cda928de88da4bcf9d23ad04db24dafb7
parentb43d919b0cc6e7b8ab2716086f56bb984e85ca4e (diff)
downloadgitlab-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
-rw-r--r--app/assets/javascripts/blob_edit/blob_bundle.js2
-rw-r--r--changelogs/unreleased/53728-warn-in-web-editor-when-user-navigates-away.yml5
-rw-r--r--spec/javascripts/blob_edit/blob_bundle_spec.js21
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();
});
});