jest.setTimeout(30000);
const platformInfo = process.env.uniTestPlatformInfo.toLocaleLowerCase()
const isAndroid = platformInfo.startsWith('android')
const isIos = platformInfo.startsWith('ios')
const isMP = platformInfo.startsWith('mp')
const isWeb = platformInfo.startsWith('web')
const isHarmony = platformInfo.startsWith('harmony')
describe('component-native-scroll-view', () => {
let page;
beforeAll(async () => {
page = await program.reLaunch('/pages/component/scroll-view/scroll-view');
await page.waitFor("view");
});
it('Event scroll-vertical',async()=>{
await page.setData({scrollTop: 100})
await page.waitFor(1000)
const topScrollDetail = await page.data('scrollDetailTest')
expect(topScrollDetail.scrollLeft).toBe(0)
expect(topScrollDetail.scrollTop).toBeGreaterThan(99.5)
expect(topScrollDetail.scrollHeight).toBeGreaterThan(0)
expect(topScrollDetail.scrollWidth).toBeGreaterThan(0)
expect(topScrollDetail.deltaX).toBe(0)
expect(topScrollDetail.deltaY).not.toBe(0)
expect(await page.data('isScrollTest')).toBe('scroll:Success')
})
it('Event scroll-horizontal',async()=>{
await page.setData({scrollLeft:220})
await page.waitFor(1000)
const leftScrollDetail = await page.data('scrollDetailTest')
expect(leftScrollDetail.scrollLeft).toBeGreaterThan(219.5)
expect(leftScrollDetail.scrollTop).toBe(0)
expect(leftScrollDetail.scrollHeight).toBeGreaterThan(0)
expect(leftScrollDetail.scrollWidth).toBeGreaterThan(0)
expect(leftScrollDetail.deltaX).toBeLessThan(-99.5)
expect(leftScrollDetail.deltaY).toBe(0)
expect(await page.data('isScrollTest')).toBe('scroll:Success')
})
it('scroll-view-screenshot', async () => {
await page.setData({
showScrollbar: false
})
await page.waitFor(1000);
const image = await program.screenshot({fullPage: true});
expect(image).toSaveImageSnapshot();
});
it('Event scrolltolower-滚动到底部/右边',async()=>{
await page.setData({scrollTop: 300})
await page.waitFor(600)
expect(await page.data('isScrolltolowerTest')).toBe('scrolltolower:Success-bottom')
})
it('Event scrolltoupper-滚动到顶部/左边',async()=>{
await page.setData({scrollTop: 0})
await page.waitFor(600)
expect(await page.data('isScrolltoupperTest')).toBe('scrolltoupper:Success-top')
})
if(!isWeb && !isMP){
it('Event scrollend-滚动结束时触发仅App端支持',async()=>{
if(isHarmony) {
await page.waitFor(500)
}
const endDetail = await page.data('scrollEndDetailTest')
expect(endDetail.scrollLeft).toBe(0)
expect(endDetail.scrollTop).toBe(0)
expect(endDetail.deltaY).toBe(0)
expect(endDetail.deltaX).toBe(0)
expect(endDetail.scrollHeight).toBeGreaterThan(0)
expect(endDetail.scrollWidth).toBeGreaterThan(0)
})
}
if(!isMP) {
it('通过UniElement.scrollBy检测scroll事件是否触发',async()=>{
await page.callMethod('setVerticalScrollBy', 120)
await page.waitFor(600)
const scrollDetail = await page.data('scrollDetailTest')
expect(scrollDetail.scrollTop).toBeGreaterThan(119)
})
}
});