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');