From 0a80f0124547092498afe96138811322635822a7 Mon Sep 17 00:00:00 2001 From: Kushal Pandya Date: Fri, 29 Mar 2019 14:34:44 +0530 Subject: [PATCH] Prevent click from propagating to parent Prevent Edit button click event from propagating further up which makes datepicker hide immediately as soon as it shows up. --- .../components/sidebar_items/sidebar_date_picker.vue | 3 ++- ee/spec/features/epics/update_epic_spec.rb | 10 ++++++++++ .../sidebar_items/sidebar_date_picker_spec.js | 6 +++++- 3 files changed, 17 insertions(+), 2 deletions(-) diff --git a/ee/app/assets/javascripts/epic/components/sidebar_items/sidebar_date_picker.vue b/ee/app/assets/javascripts/epic/components/sidebar_items/sidebar_date_picker.vue index 8f03444b79f916..1ae3ced250734d 100644 --- a/ee/app/assets/javascripts/epic/components/sidebar_items/sidebar_date_picker.vue +++ b/ee/app/assets/javascripts/epic/components/sidebar_items/sidebar_date_picker.vue @@ -171,8 +171,9 @@ export default { this.editing = false; this.$emit('toggleDateType', true, true); }, - toggleDatePicker() { + toggleDatePicker(e) { this.editing = !this.editing; + e.stopPropagation(); }, newDateSelected(date = null) { this.editing = false; diff --git a/ee/spec/features/epics/update_epic_spec.rb b/ee/spec/features/epics/update_epic_spec.rb index e372b053037ead..09bdda0426af66 100644 --- a/ee/spec/features/epics/update_epic_spec.rb +++ b/ee/spec/features/epics/update_epic_spec.rb @@ -121,6 +121,16 @@ end end + context 'epic sidebar' do + it 'opens datepicker when clicking Edit button' do + page.within('.issuable-sidebar .block.start-date') do + click_button('Edit') + expect(find('.value-type-fixed')).to have_selector('.pikaday-container') + expect(find('.value-type-fixed')).to have_selector('.pikaday-container .pika-single.is-bound') + end + end + end + it 'updates the tasklist' do expect(page).to have_selector('ul.task-list', count: 1) expect(page).to have_selector('li.task-list-item', count: 1) diff --git a/ee/spec/javascripts/epic/components/sidebar_items/sidebar_date_picker_spec.js b/ee/spec/javascripts/epic/components/sidebar_items/sidebar_date_picker_spec.js index 43a078f2d54208..4e07b2a0da1769 100644 --- a/ee/spec/javascripts/epic/components/sidebar_items/sidebar_date_picker_spec.js +++ b/ee/spec/javascripts/epic/components/sidebar_items/sidebar_date_picker_spec.js @@ -169,10 +169,14 @@ describe('SidebarDatePicker', () => { describe('toggleDatePicker', () => { it('flips value of `editing` prop from `true` to `false` and vice-versa', () => { + const e = new Event('click'); + spyOn(e, 'stopPropagation'); + vm.editing = true; - vm.toggleDatePicker(); + vm.toggleDatePicker(e); expect(vm.editing).toBe(false); + expect(e.stopPropagation).toHaveBeenCalled(); }); }); -- GitLab