mirror of
https://github.com/youzan/vant.git
synced 2025-10-17 16:44:21 +00:00
simplify test config (#639)
This commit is contained in:
137
test/specs/uploader.spec.js
Normal file
137
test/specs/uploader.spec.js
Normal file
@@ -0,0 +1,137 @@
|
||||
import Uploader from 'packages/uploader';
|
||||
import { mount } from 'avoriaz';
|
||||
|
||||
window.File = function() {
|
||||
this.name = 'test';
|
||||
this.size = 10000;
|
||||
};
|
||||
|
||||
window.FileReader = function() {
|
||||
this.readAsDataURL = this.readAsText = function() {
|
||||
this.onload && this.onload({
|
||||
target: {
|
||||
result: 'test'
|
||||
}
|
||||
});
|
||||
};
|
||||
};
|
||||
|
||||
const mockFile = new File([], '/Users');
|
||||
|
||||
describe('Uploader', () => {
|
||||
let wrapper;
|
||||
afterEach(() => {
|
||||
wrapper && wrapper.destroy();
|
||||
});
|
||||
|
||||
it('disabled', () => {
|
||||
const afterRead = sinon.spy();
|
||||
wrapper = mount(Uploader, {
|
||||
propsData: {
|
||||
disabled: true,
|
||||
afterRead
|
||||
}
|
||||
});
|
||||
|
||||
expect(wrapper.contains('input')).to.equal(true);
|
||||
wrapper.vm.onChange({ target: { files: [] }});
|
||||
expect(afterRead.calledOnce).to.be.false;
|
||||
});
|
||||
|
||||
it('before read', () => {
|
||||
const afterRead = sinon.spy();
|
||||
wrapper = mount(Uploader, {
|
||||
propsData: {
|
||||
beforeRead: () => false,
|
||||
afterRead
|
||||
}
|
||||
});
|
||||
|
||||
wrapper.vm.onChange({ target: { files: [mockFile] }});
|
||||
expect(afterRead.calledOnce).to.be.false;
|
||||
});
|
||||
|
||||
it('read text', done => {
|
||||
wrapper = mount(Uploader, {
|
||||
propsData: {
|
||||
resultType: 'text',
|
||||
afterRead: (file) => {
|
||||
expect(file.content).to.equal('test');
|
||||
done();
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
wrapper.vm.onChange({ target: { files: [mockFile] }});
|
||||
});
|
||||
|
||||
it('read dataUrl', done => {
|
||||
wrapper = mount(Uploader, {
|
||||
propsData: {
|
||||
afterRead: (file) => {
|
||||
expect(file.content).to.equal('test');
|
||||
done();
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
wrapper.vm.onChange({ target: { files: [mockFile] }});
|
||||
});
|
||||
|
||||
it('unknown resultType', () => {
|
||||
const afterRead = sinon.spy();
|
||||
wrapper = mount(Uploader, {
|
||||
propsData: {
|
||||
resultType: 'xxxx',
|
||||
afterRead
|
||||
}
|
||||
});
|
||||
wrapper.vm.onChange({ target: { files: [mockFile] }});
|
||||
expect(afterRead.calledOnce).to.be.false;
|
||||
});
|
||||
|
||||
it('read multiple files', done => {
|
||||
wrapper = mount(Uploader, {
|
||||
propsData: {
|
||||
afterRead: (file) => {
|
||||
expect(file.length).to.equal(2);
|
||||
done();
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
wrapper.vm.onChange({ target: { files: [mockFile, mockFile] }});
|
||||
});
|
||||
|
||||
it('size overlimit', done => {
|
||||
const spy = sinon.spy();
|
||||
wrapper = mount(Uploader, {
|
||||
propsData: {
|
||||
maxSize: 1
|
||||
}
|
||||
});
|
||||
wrapper.vm.$on('oversize', spy);
|
||||
wrapper.vm.onChange({ target: { files: [mockFile] }});
|
||||
|
||||
setTimeout(() => {
|
||||
expect(spy.calledOnce).to.be.true;
|
||||
done();
|
||||
}, 50);
|
||||
});
|
||||
|
||||
it('multi file size overlimit', done => {
|
||||
const spy = sinon.spy();
|
||||
wrapper = mount(Uploader, {
|
||||
propsData: {
|
||||
maxSize: 1
|
||||
}
|
||||
});
|
||||
wrapper.vm.$on('oversize', spy);
|
||||
wrapper.vm.onChange({ target: { files: [mockFile, mockFile] }});
|
||||
|
||||
setTimeout(() => {
|
||||
expect(spy.calledOnce).to.be.true;
|
||||
done();
|
||||
}, 50);
|
||||
});
|
||||
});
|
Reference in New Issue
Block a user