waterflow.test.js 5.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147
  1. const platformInfo = process.env.uniTestPlatformInfo.toLocaleLowerCase()
  2. const isMP = platformInfo.startsWith('mp')
  3. const isWeb = platformInfo.startsWith('web')
  4. const isHarmony = platformInfo.startsWith('harmony')
  5. const isAppWebView = process.env.UNI_AUTOMATOR_APP_WEBVIEW == 'true'
  6. describe('component-native-waterflow', () => {
  7. if (isMP || isWeb || isHarmony || isAppWebView) {
  8. it('not support', () => {
  9. expect(1).toBe(1)
  10. })
  11. return
  12. }
  13. let page
  14. beforeAll(async () => {
  15. //打开waterflow测试页
  16. page = await program.reLaunch('/pages/component/waterflow/waterflow')
  17. await page.waitFor(600)
  18. })
  19. //检测竖向scrolltop属性赋值
  20. it('check_scroll_top', async () => {
  21. await page.callMethod('confirm_scroll_top_input', 600)
  22. await page.waitFor(600)
  23. const listElement = await page.$('#waterflow')
  24. const scrollTop = await listElement.attribute("scrollTop")
  25. console.log("check_scroll_top---"+scrollTop)
  26. expect(scrollTop-600).toBeGreaterThanOrEqual(0)
  27. })
  28. it('Event check_scroll', async () => {
  29. await page.callMethod('confirm_scroll_top_input', 300)
  30. await page.waitFor(600)
  31. const scrollDetail = await page.data('scrollDetailTest')
  32. // console.log('scrollDetailTest:', scrollDetail)
  33. expect(scrollDetail.scrollLeft).toBe(0)
  34. // scrollTop和deltaY 在安卓端差异 299.8095
  35. expect(scrollDetail.scrollTop).toBeGreaterThan(299.5)
  36. //expect([300, 299.8095]).toContain(scrollDetail.scrollTop);
  37. expect(scrollDetail.scrollHeight).toBeGreaterThan(0)
  38. expect(scrollDetail.scrollWidth).toBeGreaterThan(0)
  39. expect(scrollDetail.deltaX).toBe(0)
  40. //此处可判断安卓issues:9121的问题
  41. expect(scrollDetail.deltaY).toBeGreaterThan(299.5)
  42. //expect([300.1905, 300, 299.8095]).toContain(scrollDetail.deltaY);
  43. expect(await page.data('isScrollTest')).toBe('scroll:Success')
  44. })
  45. it('Event scrolltolower-滚动到底部/右边',async()=>{
  46. //隐藏加载更多元素
  47. await page.callMethod('change_load_more_boolean', false)
  48. await page.waitFor(600)
  49. // 滚动到底部,是否触发scrolltolower事件
  50. await page.callMethod('confirm_scroll_top_input', 2500)
  51. await page.waitFor(600)
  52. expect(await page.data('isScrolltolowerTest')).toBe('scrolltolower:Success-bottom')
  53. //截图 检测末尾处元素UI展示
  54. const image = await program.screenshot({fullPage: false});
  55. expect(image).toSaveImageSnapshot();
  56. })
  57. it('Event scrolltoupper-滚动到顶部/左边',async()=>{
  58. // 滚动到顶部50,是否触发scrolltoupper事件
  59. await page.callMethod('confirm_scroll_top_input', 50)
  60. await page.waitFor(1000)
  61. expect(await page.data('isScrolltoupperTest')).toBe('scrolltoupper:Success-top')
  62. })
  63. it('Event scrollend-滚动结束时触发',async()=>{
  64. // 仅App端支持,向上滑动页面
  65. await program.swipe({
  66. startPoint: { x: 100, y: 300 },
  67. endPoint: { x: 100, y: 100 },
  68. duration: 100
  69. })
  70. await page.waitFor(4200)
  71. const endDetail = await page.data('scrollEndDetailTest')
  72. console.log('scrollEndDetailTest:', endDetail)
  73. expect(endDetail.deltaY).toBe(0)
  74. expect(endDetail.deltaX).toBe(0)
  75. expect(endDetail.scrollLeft).toBe(0)
  76. expect(endDetail.scrollTop).toBeGreaterThan(0)
  77. expect(endDetail.scrollHeight).toBeGreaterThan(0)
  78. expect(endDetail.scrollWidth).toBeGreaterThan(0)
  79. })
  80. //检测竖向可滚动区域
  81. it('check_scroll_height', async () => {
  82. await page.waitFor(600)
  83. const value = await page.callMethod('check_scroll_height')
  84. expect(value).toBe(true)
  85. })
  86. //检测下拉刷新
  87. it('check_refresher', async () => {
  88. await page.callMethod('confirm_scroll_top_input', 0)
  89. await page.setData({
  90. refresher_enabled_boolean: true,
  91. refresher_triggered_boolean: true
  92. })
  93. await page.waitFor(1000)
  94. expect(await page.data('refresherrefresh')).toBe(true)
  95. //延迟 等待下拉刷新执行结束 防止后续测试任务结果异常
  96. await page.waitFor(2000)
  97. })
  98. //检测竖向scroll_into_view属性赋值
  99. it('check_scroll_into_view_top', async () => {
  100. await page.callMethod('setScrollIntoView', 'item---3')
  101. await page.waitFor(600)
  102. const scrollTop = await page.callMethod('getScrollTop')
  103. console.log("check_scroll_into_view_top--"+scrollTop)
  104. await page.callMethod('setScrollIntoView', 'item---0')
  105. expect(scrollTop-280).toBeGreaterThanOrEqual(0)
  106. })
  107. it('check_scroll_into_view_top_2', async () => {
  108. await page.callMethod('confirm_scroll_top_input', 2000)
  109. await page.waitFor(600)
  110. //需要先赋值空,不然不会引起变化
  111. await page.callMethod('setScrollIntoView', '')
  112. await page.waitFor(300)
  113. await page.callMethod('setScrollIntoView', 'item---0')
  114. await page.waitFor(600)
  115. const scrollTop = await page.callMethod('getScrollTop')
  116. console.log("check_scroll_into_view_top2--"+scrollTop)
  117. expect(scrollTop).toBeLessThanOrEqual(10)
  118. })
  119. //检测waterflow属性变化 截图校验
  120. it('check_waterflow_view_props', async () => {
  121. await page.callMethod('testModifyWaterflowProps')
  122. await page.waitFor(600)
  123. const image = await program.screenshot({fullPage: false});
  124. expect(image).toSaveImageSnapshot();
  125. await page.waitFor(1000)
  126. })
  127. //检测waterflow 单列 截图校验
  128. it('check_waterflow_single_row', async () => {
  129. await page.callMethod('testModifyWaterflowSingleRow')
  130. await page.waitFor(600)
  131. const image = await program.screenshot({fullPage: false});
  132. expect(image).toSaveImageSnapshot();
  133. })
  134. })