mirror of
https://gitee.com/vant-contrib/vant.git
synced 2025-04-25 02:41:46 +08:00
[Improvement] Uploader add test cases (#1188)
This commit is contained in:
parent
f44e788ae8
commit
6f74201b29
95
packages/uploader/test/index.spec.js
Normal file
95
packages/uploader/test/index.spec.js
Normal file
@ -0,0 +1,95 @@
|
|||||||
|
import Uploader from '..';
|
||||||
|
import { mount } from '@vue/test-utils';
|
||||||
|
|
||||||
|
window.File = function() {
|
||||||
|
this.size = 10000;
|
||||||
|
};
|
||||||
|
|
||||||
|
window.FileReader = function() {
|
||||||
|
this.readAsDataURL = this.readAsText = function() {
|
||||||
|
this.onload &&
|
||||||
|
this.onload({
|
||||||
|
target: {
|
||||||
|
result: 'test'
|
||||||
|
}
|
||||||
|
});
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
const mockFile = new File([], '/Users');
|
||||||
|
const file = { target: { files: [mockFile] }};
|
||||||
|
const multiFile = { target: { files: [mockFile, mockFile] }};
|
||||||
|
|
||||||
|
test('disabled', () => {
|
||||||
|
const afterRead = jest.fn();
|
||||||
|
const wrapper = mount(Uploader, {
|
||||||
|
propsData: {
|
||||||
|
disabled: true,
|
||||||
|
afterRead
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
wrapper.vm.onChange(file);
|
||||||
|
expect(afterRead.mock.calls.length).toBeFalsy();
|
||||||
|
});
|
||||||
|
|
||||||
|
it('read text', done => {
|
||||||
|
const wrapper = mount(Uploader, {
|
||||||
|
propsData: {
|
||||||
|
resultType: 'text',
|
||||||
|
afterRead: file => {
|
||||||
|
expect(file.content).toEqual('test');
|
||||||
|
done();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
wrapper.vm.onChange(file);
|
||||||
|
});
|
||||||
|
|
||||||
|
it('unknown resultType', () => {
|
||||||
|
const afterRead = jest.fn();
|
||||||
|
const wrapper = mount(Uploader, {
|
||||||
|
propsData: {
|
||||||
|
resultType: 'xxxx',
|
||||||
|
afterRead
|
||||||
|
}
|
||||||
|
});
|
||||||
|
wrapper.vm.onChange(file);
|
||||||
|
expect(afterRead.mock.calls.length).toBeFalsy();
|
||||||
|
});
|
||||||
|
|
||||||
|
it('before read return false', () => {
|
||||||
|
const afterRead = jest.fn();
|
||||||
|
const wrapper = mount(Uploader, {
|
||||||
|
propsData: {
|
||||||
|
beforeRead: () => false,
|
||||||
|
afterRead
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
wrapper.vm.onChange(file);
|
||||||
|
expect(afterRead.mock.calls.length).toBeFalsy();
|
||||||
|
});
|
||||||
|
|
||||||
|
test('file size overlimit', done => {
|
||||||
|
const wrapper = mount(Uploader, {
|
||||||
|
propsData: {
|
||||||
|
maxSize: 1
|
||||||
|
}
|
||||||
|
});
|
||||||
|
wrapper.vm.onChange(file);
|
||||||
|
wrapper.vm.onChange(multiFile);
|
||||||
|
|
||||||
|
setTimeout(() => {
|
||||||
|
expect(wrapper.emitted('oversize')[0]).toBeTruthy();
|
||||||
|
expect(wrapper.emitted('oversize')[1]).toBeTruthy();
|
||||||
|
|
||||||
|
wrapper.vm.maxSize = 100000;
|
||||||
|
wrapper.vm.onChange(multiFile);
|
||||||
|
setTimeout(() => {
|
||||||
|
expect(wrapper.emitted('oversize')[2]).toBeFalsy();
|
||||||
|
done();
|
||||||
|
});
|
||||||
|
});
|
||||||
|
});
|
Loading…
x
Reference in New Issue
Block a user