Skip to content

Commit

Permalink
DateTimePicker: changeToNow cheks disabledDate (#9470)
Browse files Browse the repository at this point in the history
  • Loading branch information
wacky6 authored and Leopoldthecoder committed Jan 25, 2018
1 parent 8e466dd commit 1b59561
Show file tree
Hide file tree
Showing 2 changed files with 86 additions and 59 deletions.
8 changes: 6 additions & 2 deletions packages/date-picker/src/panel/date.vue
Original file line number Diff line number Diff line change
Expand Up @@ -333,8 +333,12 @@
},
changeToNow() {
this.date = new Date();
this.emit(this.date);
// NOTE: not a permanent solution
// consider disable "now" button in the future
if (!this.disabledDate || !this.disabledDate(new Date())) {
this.date = new Date();
this.emit(this.date);
}
},
confirm() {
Expand Down
137 changes: 80 additions & 57 deletions test/unit/specs/date-picker.spec.js
Original file line number Diff line number Diff line change
Expand Up @@ -1025,65 +1025,27 @@ describe('DatePicker', () => {
});
});

describe('default value', () => {
it('single', done => {
let defaultValue = '2000-10-01';
let expectValue = [new Date(2000, 9, 1), new Date(2000, 9, 2)];

vm = createVue({
template: '<el-date-picker type="daterange" v-model="value" ref="compo" :default-value="defaultValue" />',
data() {
return {
value: '',
defaultValue
};
}
}, true);

vm.$el.querySelector('input').focus();
setTimeout(_ => {
const $el = vm.$refs.compo.picker.$el;
const defaultEls = $el.querySelectorAll('.el-date-table td.default');
expect(defaultEls.length).to.equal(1);
defaultEls[0].click();
setTimeout(_ => {
$el.querySelector('.el-date-table td.default + td').click();
setTimeout(_ => {
expect(vm.value).to.eql(expectValue);
done();
}, DELAY);
}, DELAY);
}, DELAY);
});

it('array', done => {
let defaultValue = ['2000-01-01', '2000-02-01'];
let expectValue = [new Date(2000, 0, 1), new Date(2000, 1, 1)];

vm = createVue({
template: '<el-date-picker type="daterange" v-model="value" ref="compo" :default-value="defaultValue" />',
data() {
return {
value: '',
defaultValue
};
}
}, true);

vm.$el.querySelector('input').focus();
it('now button: can not choose disabled date', done => {
vm = createVue({
template: '<el-date-picker type="datetime" v-model="value" ref="compo" :pickerOptions="pickerOptions" />',
data() {
return {
value: '',
pickerOptions: {
disabledDate() { return true; }
}
};
}
}, true);
vm.$refs.compo.$el.querySelector('input').focus();
setTimeout(_ => {
// click now button
vm.$refs.compo.picker.$el.querySelector('.el-picker-panel__footer .el-button--text').click();
setTimeout(_ => {
const defaultEls = vm.$refs.compo.picker.$el.querySelectorAll('.el-date-table td.default');
expect(defaultEls.length).to.equal(2);
defaultEls[0].click();
setTimeout(_ => {
defaultEls[1].click();
setTimeout(_ => {
expect(vm.value).to.eql(expectValue);
done();
}, DELAY);
}, DELAY);
expect(vm.value).to.equal('');
done();
}, DELAY);
});
}, DELAY);
});
});

Expand Down Expand Up @@ -1260,6 +1222,67 @@ describe('DatePicker', () => {
}, DELAY);
}, DELAY);
});

describe('default value', () => {
it('single', done => {
let defaultValue = '2000-10-01';
let expectValue = [new Date(2000, 9, 1), new Date(2000, 9, 2)];

vm = createVue({
template: '<el-date-picker type="daterange" v-model="value" ref="compo" :default-value="defaultValue" />',
data() {
return {
value: '',
defaultValue
};
}
}, true);

vm.$el.querySelector('input').focus();
setTimeout(_ => {
const $el = vm.$refs.compo.picker.$el;
const defaultEls = $el.querySelectorAll('.el-date-table td.default');
expect(defaultEls.length).to.equal(1);
defaultEls[0].click();
setTimeout(_ => {
$el.querySelector('.el-date-table td.default + td').click();
setTimeout(_ => {
expect(vm.value).to.eql(expectValue);
done();
}, DELAY);
}, DELAY);
}, DELAY);
});

it('array', done => {
let defaultValue = ['2000-01-01', '2000-02-01'];
let expectValue = [new Date(2000, 0, 1), new Date(2000, 1, 1)];

vm = createVue({
template: '<el-date-picker type="daterange" v-model="value" ref="compo" :default-value="defaultValue" />',
data() {
return {
value: '',
defaultValue
};
}
}, true);

vm.$el.querySelector('input').focus();
setTimeout(_ => {
const defaultEls = vm.$refs.compo.picker.$el.querySelectorAll('.el-date-table td.default');
expect(defaultEls.length).to.equal(2);
defaultEls[0].click();
setTimeout(_ => {
defaultEls[1].click();
setTimeout(_ => {
expect(vm.value).to.eql(expectValue);
done();
}, DELAY);
}, DELAY);
}, DELAY);
});
});
});

describe('type:datetimerange', () => {
Expand Down

0 comments on commit 1b59561

Please sign in to comment.