tabs组件支持滑动 (#52)

This commit is contained in:
张敏
2017-07-11 14:35:39 +08:00
committed by GitHub
parent aaaba3888f
commit 2cc8f2ae5e
15 changed files with 331 additions and 62 deletions
+72
View File
@@ -1,6 +1,7 @@
import Tabs from 'packages/tabs';
import { mount } from 'avoriaz';
import TabsTestComponent from '../components/tabs';
import MoreTabsTestComponent from '../components/more-tabs';
describe('Tabs', () => {
let wrapper;
@@ -74,4 +75,75 @@ describe('Tabs', () => {
expect(wrapper.style.transitionDuration != '').to.be.true;
});
it('create a tabs greater then 4', (done) => {
wrapper = mount(MoreTabsTestComponent, {
attachToDocument: true
});
wrapper.vm.$nextTick(() => {
const nTab = wrapper.find('.van-tab')[4];
nTab.trigger('click');
done();
});
});
it('create a tabs greater then 4 then click last tab', (done) => {
wrapper = mount(MoreTabsTestComponent, {
attachToDocument: true,
propsData: {
active: 7
}
});
wrapper.vm.$nextTick(() => {
const nTab = wrapper.find('.van-tab')[6];
nTab.trigger('click');
done();
});
});
it('test swipe', (done) => {
wrapper = mount(MoreTabsTestComponent, {
attachToDocument: true
});
setTimeout(() => {
const nSwipe = wrapper.find('.van-tabs__swipe')[0];
const eventMouseObject = new window.Event('mousedown');
eventMouseObject.pageX = 200;
nSwipe.element.dispatchEvent(eventMouseObject);
const eventTouchObject = new window.Event('touchstart');
eventTouchObject.changedTouches = [{ pageX: 200 }];
nSwipe.element.dispatchEvent(eventTouchObject);
}, 500);
setTimeout(() => {
const nSwipe = wrapper.find('.van-tabs__swipe')[0];
const eventMouseMoveObject = new window.Event('mousemove');
eventMouseMoveObject.pageX = 0;
document.dispatchEvent(eventMouseMoveObject);
const eventObject = new window.Event('touchmove');
eventObject.changedTouches = [{ pageX: 0 }];
nSwipe.element.dispatchEvent(eventObject);
// 结束滑动
const eventMouseUpObject = new window.Event('mouseup');
document.dispatchEvent(eventMouseUpObject);
const eventEndObject = new window.Event('touchend');
eventEndObject.changedTouches = [{}];
nSwipe.element.dispatchEvent(eventEndObject);
}, 1000);
setTimeout(() => {
const nItem = wrapper.find('.van-tab')[0];
expect(nItem.hasClass('van-tab--active')).to.be.true;
done();
}, 1200);
});
});