input test improve

pull/552/head
baiyaaaaa 2016-10-20 18:51:18 +08:00 committed by cinwell.li
parent fdf601dbed
commit 56354f1c81
2 changed files with 60 additions and 17 deletions

View File

@ -128,8 +128,9 @@
if (!autosize || type !== 'textarea') { if (!autosize || type !== 'textarea') {
return; return;
} }
const minRows = autosize ? autosize.minRows : null; const minRows = autosize.minRows;
const maxRows = autosize ? autosize.maxRows : null; const maxRows = autosize.maxRows;
this.textareaStyle = calcTextareaHeight(this.$refs.textarea, minRows, maxRows); this.textareaStyle = calcTextareaHeight(this.$refs.textarea, minRows, maxRows);
}, },
handleFocus(ev) { handleFocus(ev) {

View File

@ -8,11 +8,24 @@ describe('Input', () => {
minlength="3" minlength="3"
maxlength="5" maxlength="5"
placeholder="请输入内容" placeholder="请输入内容"
@focus="handleFocus"
value="input"> value="input">
</el-input> </el-input>
` `,
data() {
return {
inputFocus: false
};
},
methods: {
handleFocus() {
this.inputFocus = true;
}
}
}, true); }, true);
let inputElm = vm.$el.querySelector('input'); let inputElm = vm.$el.querySelector('input');
inputElm.focus();
expect(vm.inputFocus).to.be.true;
expect(inputElm.getAttribute('placeholder')).to.equal('请输入内容'); expect(inputElm.getAttribute('placeholder')).to.equal('请输入内容');
expect(inputElm.value).to.equal('input'); expect(inputElm.value).to.equal('input');
expect(inputElm.getAttribute('minlength')).to.equal('3'); expect(inputElm.getAttribute('minlength')).to.equal('3');
@ -32,11 +45,27 @@ describe('Input', () => {
it('icon', () => { it('icon', () => {
const vm = createVue({ const vm = createVue({
template: ` template: `
<el-input icon="time"> <el-input
icon="time"
@click="handleIconClick"
>
</el-input> </el-input>
` `,
data() {
return {
iconClicked: false
};
},
methods: {
handleIconClick(ev) {
this.iconClicked = true;
}
}
}, true); }, true);
expect(vm.$el.querySelector('.el-input__icon').classList.contains('el-icon-time')).to.true; var icon = vm.$el.querySelector('.el-input__icon');
icon.click();
expect(icon.classList.contains('el-icon-time')).to.true;
expect(vm.iconClicked).to.true;
}); });
it('size', () => { it('size', () => {
@ -73,26 +102,39 @@ describe('Input', () => {
it('autosize', done => { it('autosize', done => {
const vm = createVue({ const vm = createVue({
template: ` template: `
<div>
<el-input <el-input
ref="limitSize"
type="textarea" type="textarea"
autosize="{minRows: 3, maxRows: 5}" :autosize="{minRows: 3, maxRows: 5}"
v-model="textareaValue" v-model="textareaValue"
> >
</el-input> </el-input>
<el-input
ref="limitlessSize"
type="textarea"
autosize
v-model="textareaValue"
>
</el-input>
</div>
`, `,
data() { data() {
return { return {
textareaValue: 'sda\ndasd\nddasdsda\ndasd\nddasdsda\ndasd\nddasdsda\ndasd\nddasd' textareaValue: 'sda\ndasd\nddasdsda\ndasd\nddasdsda\ndasd\nddasdsda\ndasd\nddasd'
}; };
} }
}, true).$children[0]; }, true);
var originHeight = vm.textareaStyle.height; var limitSizeInput = vm.$refs.limitSize;
expect(originHeight).to.be.not.equal('117px'); var limitlessSizeInput = vm.$refs.limitlessSize;
expect(limitSizeInput.textareaStyle.height).to.be.equal('117px');
expect(limitlessSizeInput.textareaStyle.height).to.be.equal('201px');
vm.$parent.textareaValue = ''; vm.textareaValue = '';
setTimeout(_ => { setTimeout(_ => {
expect(vm.textareaStyle.height).to.be.not.equal('54px'); expect(limitSizeInput.textareaStyle.height).to.be.equal('75px');
expect(limitlessSizeInput.textareaStyle.height).to.be.equal('33px');
done(); done();
}, 200); }, 200);
}); });