diff options
author | Filipa Lacerda <filipa@gitlab.com> | 2017-05-17 19:21:26 +0000 |
---|---|---|
committer | Filipa Lacerda <filipa@gitlab.com> | 2017-05-17 19:21:26 +0000 |
commit | 16288e78568841ceb74fa922b7e0e84496c8808e (patch) | |
tree | aba73666ead47c32daf255b54d959a79a31f2362 | |
parent | 81c69c288b626a5bea2d5abddfe5dab1107e35e1 (diff) | |
parent | cf0cc9726d26212e79d915339acb06edda726ec3 (diff) | |
download | gitlab-ce-16288e78568841ceb74fa922b7e0e84496c8808e.tar.gz |
Merge branch 'issue-edit-inline-stop-edit-button-reseting-state' into 'issue-edit-inline'
Stops formState from updating if the form is already open
See merge request !11443
-rw-r--r-- | app/assets/javascripts/issue_show/components/app.vue | 14 | ||||
-rw-r--r-- | spec/javascripts/issue_show/components/app_spec.js | 21 |
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) => { |