const platformInfo = process.env.uniTestPlatformInfo.toLocaleLowerCase()
const isMP = platformInfo.startsWith('mp')
const isWeb = platformInfo.startsWith('web')
const isHarmony = platformInfo.startsWith('harmony')
const isAppWebView = process.env.UNI_AUTOMATOR_APP_WEBVIEW == 'true'
describe('component-native-waterflow', () => {
if (isMP || isWeb || isAppWebView || isHarmony) {
it('not support', () => {
expect(1).toBe(1)
})
return
}
let page
beforeAll(async () => {
page = await program.reLaunch('/pages/component/waterflow/waterflow')
await page.waitFor(600)
})
it('check_scroll_top', async () => {
await page.callMethod('confirm_scroll_top_input', 600)
await page.waitFor(600)
const listElement = await page.$('#waterflow')
const scrollTop = await listElement.attribute("scrollTop")
console.log("check_scroll_top---"+scrollTop)
expect(scrollTop-600).toBeGreaterThanOrEqual(0)
})
it('Event check_scroll', async () => {
await page.callMethod('confirm_scroll_top_input', 300)
await page.waitFor(600)
const scrollDetail = await page.data('scrollDetailTest')
expect(scrollDetail.scrollLeft).toBe(0)
expect(scrollDetail.scrollTop).toBeGreaterThan(299.5)
expect(scrollDetail.scrollHeight).toBeGreaterThan(0)
expect(scrollDetail.scrollWidth).toBeGreaterThan(0)
expect(scrollDetail.deltaX).toBe(0)
expect(scrollDetail.deltaY).toBeGreaterThan(299.5)
expect(await page.data('isScrollTest')).toBe('scroll:Success')
})
it('Event scrolltolower-滚动到底部/右边',async()=>{
await page.callMethod('change_load_more_boolean', false)
await page.waitFor(600)
await page.callMethod('confirm_scroll_top_input', 2500)
await page.waitFor(600)
expect(await page.data('isScrolltolowerTest')).toBe('scrolltolower:Success-bottom')
const image = await program.screenshot({fullPage: false});
expect(image).toSaveImageSnapshot();
})
it('Event scrolltoupper-滚动到顶部/左边',async()=>{
await page.callMethod('confirm_scroll_top_input', 50)
await page.waitFor(1000)
expect(await page.data('isScrolltoupperTest')).toBe('scrolltoupper:Success-top')
})
it('Event scrollend-滚动结束时触发',async()=>{
await program.swipe({
startPoint: { x: 100, y: 300 },
endPoint: { x: 100, y: 100 },
duration: 100
})
await page.waitFor(4200)
const endDetail = await page.data('scrollEndDetailTest')
console.log('scrollEndDetailTest:', endDetail)
expect(endDetail.deltaY).toBe(0)
expect(endDetail.deltaX).toBe(0)
expect(endDetail.scrollLeft).toBe(0)
expect(endDetail.scrollTop).toBeGreaterThan(0)
expect(endDetail.scrollHeight).toBeGreaterThan(0)
expect(endDetail.scrollWidth).toBeGreaterThan(0)
})
it('check_scroll_height', async () => {
await page.waitFor(600)
const value = await page.callMethod('check_scroll_height')
expect(value).toBe(true)
})
it('check_refresher', async () => {
await page.callMethod('confirm_scroll_top_input', 0)
await page.setData({
refresher_enabled_boolean: true,
refresher_triggered_boolean: true
})
await page.waitFor(1000)
expect(await page.data('refresherrefresh')).toBe(true)
await page.waitFor(2000)
})
if(!isHarmony) {
it('check_scroll_into_view_top', async () => {
await page.callMethod('setScrollIntoView', 'item---3')
await page.waitFor(600)
const scrollTop = await page.callMethod('getScrollTop')
console.log("check_scroll_into_view_top--"+scrollTop)
await page.callMethod('setScrollIntoView', 'item---0')
expect(scrollTop-280).toBeGreaterThanOrEqual(0)
})
it('check_scroll_into_view_top_2', async () => {
await page.callMethod('confirm_scroll_top_input', 2000)
await page.waitFor(600)
await page.callMethod('setScrollIntoView', '')
await page.waitFor(300)
await page.callMethod('setScrollIntoView', 'item---0')
await page.waitFor(600)
const scrollTop = await page.callMethod('getScrollTop')
console.log("check_scroll_into_view_top2--"+scrollTop)
expect(scrollTop).toBeLessThanOrEqual(10)
})
}
it('check_waterflow_view_props', async () => {
await page.callMethod('testModifyWaterflowProps')
await page.waitFor(600)
const image = await program.screenshot({fullPage: false});
expect(image).toSaveImageSnapshot();
await page.waitFor(1000)
})
it('check_waterflow_single_row', async () => {
await page.callMethod('testModifyWaterflowSingleRow')
await page.waitFor(600)
const image = await program.screenshot({fullPage: false});
expect(image).toSaveImageSnapshot();
})
})