2018-12-21 18:18:05 +08:00
|
|
|
import {ScrollView} from 'mand-mobile'
|
|
|
|
|
import ScrollViewRefresh from 'mand-mobile/components/scroll-view/refresh'
|
|
|
|
|
import ScrollViewMore from 'mand-mobile/components/scroll-view/more'
|
2018-07-12 17:44:42 +08:00
|
|
|
import ScrollViewContent from './scroll-view-content'
|
2018-12-11 21:27:39 +08:00
|
|
|
import sinon from 'sinon'
|
|
|
|
|
import {mount} from '@vue/test-utils'
|
2019-01-26 22:26:26 +08:00
|
|
|
import triggerTouch from '../../popup/test/touch-trigger'
|
2018-07-12 17:44:42 +08:00
|
|
|
|
|
|
|
|
describe('ScrollView', () => {
|
|
|
|
|
let wrapper
|
|
|
|
|
|
|
|
|
|
afterEach(() => {
|
|
|
|
|
wrapper && wrapper.destroy()
|
|
|
|
|
})
|
|
|
|
|
|
|
|
|
|
it('create scroll-view', () => {
|
|
|
|
|
wrapper = mount(ScrollView, {
|
2019-01-26 22:26:26 +08:00
|
|
|
propsData: {
|
|
|
|
|
autoReflow: true,
|
|
|
|
|
},
|
2018-07-12 17:44:42 +08:00
|
|
|
slots: {
|
|
|
|
|
default: ScrollViewContent,
|
|
|
|
|
},
|
|
|
|
|
})
|
|
|
|
|
// const eventStub = sinon.stub(wrapper.vm, '$emit')
|
2019-01-26 22:26:26 +08:00
|
|
|
|
|
|
|
|
wrapper.vm.init()
|
|
|
|
|
|
|
|
|
|
const scrollView = wrapper.find('.md-scroll-view')
|
|
|
|
|
triggerTouch(scrollView.element, 'touchstart', 0, 0)
|
|
|
|
|
triggerTouch(scrollView.element, 'touchmove', 0, -50)
|
|
|
|
|
triggerTouch(scrollView.element, 'touchend', 0, -50)
|
|
|
|
|
|
|
|
|
|
wrapper.vm.scrollTo(0, 0, true)
|
|
|
|
|
|
|
|
|
|
triggerTouch(scrollView.element, 'mousedown', 0, 0)
|
|
|
|
|
triggerTouch(scrollView.element, 'mousemove', 0, -50)
|
|
|
|
|
triggerTouch(scrollView.element, 'mouseup', 0, -50)
|
2018-07-12 17:44:42 +08:00
|
|
|
})
|
|
|
|
|
|
|
|
|
|
it('scroll-view pull refresh', done => {
|
|
|
|
|
wrapper = mount(ScrollView, {
|
|
|
|
|
slots: {
|
|
|
|
|
default: ScrollViewContent,
|
|
|
|
|
refresh: ScrollViewRefresh,
|
|
|
|
|
},
|
|
|
|
|
})
|
|
|
|
|
|
|
|
|
|
const eventStub = sinon.stub(wrapper.vm, '$emit')
|
2018-12-11 21:27:39 +08:00
|
|
|
expect(wrapper.findAll('.scroll-view-refresh').length > 0).toBe(true)
|
2018-07-12 17:44:42 +08:00
|
|
|
|
|
|
|
|
wrapper.vm.triggerRefresh()
|
|
|
|
|
setTimeout(() => {
|
2018-12-11 21:27:39 +08:00
|
|
|
expect(eventStub.calledWith('refreshing')).toBe(true)
|
2019-01-26 22:26:26 +08:00
|
|
|
wrapper.vm.finishRefresh()
|
2018-07-12 17:44:42 +08:00
|
|
|
done()
|
|
|
|
|
}, 500)
|
|
|
|
|
})
|
|
|
|
|
|
|
|
|
|
it('scroll-view load more', () => {
|
|
|
|
|
wrapper = mount(ScrollView, {
|
|
|
|
|
slots: {
|
|
|
|
|
default: ScrollViewContent,
|
|
|
|
|
more: ScrollViewMore,
|
|
|
|
|
},
|
|
|
|
|
})
|
|
|
|
|
|
|
|
|
|
const eventStub = sinon.stub(wrapper.vm, '$emit')
|
2018-12-11 21:27:39 +08:00
|
|
|
expect(wrapper.findAll('.scroll-view-more').length > 0).toBe(true)
|
2019-01-26 22:26:26 +08:00
|
|
|
wrapper.vm.finishLoadMore()
|
2018-07-12 17:44:42 +08:00
|
|
|
})
|
2019-10-18 16:56:49 +08:00
|
|
|
|
|
|
|
|
it('get offsets', () => {
|
|
|
|
|
wrapper = mount(ScrollView, {
|
|
|
|
|
propsData: {
|
|
|
|
|
autoReflow: true,
|
|
|
|
|
},
|
|
|
|
|
slots: {
|
|
|
|
|
default: ScrollViewContent,
|
|
|
|
|
},
|
|
|
|
|
})
|
|
|
|
|
// const eventStub = sinon.stub(wrapper.vm, '$emit')
|
|
|
|
|
|
|
|
|
|
wrapper.vm.init()
|
|
|
|
|
expect(wrapper.vm.getOffsets().top).toBe(0)
|
|
|
|
|
})
|
2018-07-12 17:44:42 +08:00
|
|
|
})
|