summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPhil Hughes <me@iamphill.com>2017-05-17 16:06:17 +0100
committerPhil Hughes <me@iamphill.com>2017-05-17 16:06:17 +0100
commitcf0cc9726d26212e79d915339acb06edda726ec3 (patch)
treeaba73666ead47c32daf255b54d959a79a31f2362
parent81c69c288b626a5bea2d5abddfe5dab1107e35e1 (diff)
downloadgitlab-ce-issue-edit-inline-stop-edit-button-reseting-state.tar.gz
Stops formState from updating if the form is already openissue-edit-inline-stop-edit-button-reseting-state
[ci skip]
-rw-r--r--app/assets/javascripts/issue_show/components/app.vue14
-rw-r--r--spec/javascripts/issue_show/components/app_spec.js21
2 files changed, 27 insertions, 8 deletions
diff --git a/app/assets/javascripts/issue_show/components/app.vue b/app/assets/javascripts/issue_show/components/app.vue
index 87757b1a35d..47d9a27e99e 100644
--- a/app/assets/javascripts/issue_show/components/app.vue
+++ b/app/assets/javascripts/issue_show/components/app.vue
@@ -79,12 +79,14 @@ export default {
},
methods: {
openForm() {
- this.showForm = true;
- this.store.formState = {
- title: this.state.titleText,
- confidential: this.isConfidential,
- description: this.state.descriptionText,
- };
+ if (!this.showForm) {
+ this.showForm = true;
+ this.store.formState = {
+ title: this.state.titleText,
+ confidential: this.isConfidential,
+ description: this.state.descriptionText,
+ };
+ }
},
closeForm() {
this.showForm = false;
diff --git a/spec/javascripts/issue_show/components/app_spec.js b/spec/javascripts/issue_show/components/app_spec.js
index 36cd174d341..646fb455d7c 100644
--- a/spec/javascripts/issue_show/components/app_spec.js
+++ b/spec/javascripts/issue_show/components/app_spec.js
@@ -23,7 +23,7 @@ describe('Issuable output', () => {
const IssuableDescriptionComponent = Vue.extend(issuableApp);
Vue.http.interceptors.push(issueShowInterceptor(issueShowData.initialRequest));
- spyOn(eventHub, '$emit');
+ spyOn(eventHub, '$emit').and.callThrough();
vm = new IssuableDescriptionComponent({
propsData: {
@@ -34,8 +34,9 @@ describe('Issuable output', () => {
initialTitle: '',
initialDescriptionHtml: '',
initialDescriptionText: '',
- showForm: false,
isConfidential: false,
+ markdownPreviewUrl: '/',
+ markdownDocs: '/',
},
}).$mount();
});
@@ -89,6 +90,22 @@ describe('Issuable output', () => {
});
});
+ it('does not update formState if form is already open', (done) => {
+ vm.openForm();
+
+ vm.state.titleText = 'testing 123';
+
+ vm.openForm();
+
+ Vue.nextTick(() => {
+ expect(
+ vm.store.formState.title,
+ ).not.toBe('testing 123');
+
+ done();
+ });
+ });
+
describe('updateIssuable', () => {
it('correctly updates issuable data', (done) => {
spyOn(vm.service, 'updateIssuable').and.callFake(() => new Promise((resolve) => {