diff --git a/superset/assets/javascripts/explore/components/controls/DateFilterControl.jsx b/superset/assets/javascripts/explore/components/controls/DateFilterControl.jsx index 98db93a7e77d..3669c9fade0c 100644 --- a/superset/assets/javascripts/explore/components/controls/DateFilterControl.jsx +++ b/superset/assets/javascripts/explore/components/controls/DateFilterControl.jsx @@ -69,9 +69,8 @@ export default class DateFilterControl extends React.Component { setType(type) { this.setState({ type }); } - setValue(val) { - this.setState({ type: 'free', free: val }); - this.close(); + setValueAndClose(val) { + this.setState({ type: 'free', free: val }, this.close); } setDatetime(dttm) { this.setState({ dttm: dttm.format().substring(0, 19) }); @@ -175,13 +174,15 @@ export default class DateFilterControl extends React.Component { > diff --git a/superset/assets/spec/javascripts/explore/components/DateFilterControl_spec.jsx b/superset/assets/spec/javascripts/explore/components/DateFilterControl_spec.jsx index e15356e4768d..54db5c9cf32b 100644 --- a/superset/assets/spec/javascripts/explore/components/DateFilterControl_spec.jsx +++ b/superset/assets/spec/javascripts/explore/components/DateFilterControl_spec.jsx @@ -42,6 +42,14 @@ describe('DateFilterControl', () => { expect(wrapper.state().num).to.equal('90'); }, 10); }); + it('sets now and closes', () => { + const label = wrapper.find('.now').first(); + label.simulate('click'); + setTimeout(() => { + expect(wrapper.state().free).to.equal('now'); + expect(wrapper.find('.popover')).to.have.length(0); + }, 10); + }); it('renders 2 dimmed sections', () => { const label = wrapper.find('.label').first(); label.simulate('click');