scroll-view-refresher.test.js 3.0 KB
Newer Older
1
// uni-app自动化测试教程: uni-app自动化测试教程: https://uniapp.dcloud.net.cn/worktile/auto/hbuilderx-extension/
2 3 4
const platformInfo = process.env.uniTestPlatformInfo.toLocaleLowerCase()
const isAndroid = platformInfo.startsWith('android')
const isIos = platformInfo.startsWith('ios')
5
const isMP = platformInfo.startsWith('mp')
雪洛's avatar
雪洛 已提交
6
describe('component-native-scroll-view-refresher', () => {
7
  if (process.env.UNI_AUTOMATOR_APP_WEBVIEW) {
雪洛's avatar
雪洛 已提交
8 9 10 11
    it('other platform', () => {
      expect(1).toBe(1)
    })
    return
12 13 14 15 16 17 18 19 20
  }

  if (process.env.UNI_TEST_DEVICES_DIRECTION == 'landscape') {
    it('跳过横屏模式', () => {
      expect(1).toBe(1)
    })
    return
  }

雪洛's avatar
雪洛 已提交
21 22 23 24
  let page;
  beforeAll(async () => {
    page = await program.reLaunch('/pages/component/scroll-view/scroll-view-refresher');
    await page.waitFor(300);
25
  });
26

雪洛's avatar
雪洛 已提交
27 28 29 30
  it('scroll-view-refresher-screenshot', async () => {
    //禁止滚动条
    await page.setData({
        showScrollbar: false
31
    })
雪洛's avatar
雪洛 已提交
32 33 34 35
    await page.waitFor(300);
    const image = await program.screenshot({fullPage: true});
    expect(image).toSaveImageSnapshot();
  })
36

37
  it('check_refresher_refresh_event', async () => {
雪洛's avatar
雪洛 已提交
38 39
    await page.setData({
      refresherTriggered: true
40
    })
41
    await page.waitFor(2000);
42 43
    expect(await page.data('refresherrefreshTimes')).toBe(1)
    // 手动设置下拉刷新状态refresher-triggered为true时,在web和iOS不触发@refresherpulling事件
44
    if(isAndroid){
45
      expect(await page.data('onRefresherpullingTest')).toBe('refresherpulling:Success')
46
      expect(await page.data('refresherrefreshTest')).toBe('refresherrefresh:Success')
47
    }
48
    await page.waitFor(2000);
49
    expect(await page.data('onRefresherrestoreTest')).toBe('refresherrestore:Success')
雪洛's avatar
雪洛 已提交
50
  });
51

52 53
  // 仅App端支持手势下拉刷新,在不同设备上位置有差异可能导致不触发中止事件
  // 安卓端仅测'android 11.0.0'、'android 10.0.0_x86_64'、'android 10.0.0_x86'
雪洛's avatar
雪洛 已提交
54
  if(!platformInfo.startsWith('web') && !platformInfo.startsWith('mp')){
55
    it('check_refresherabort', async () => {
56 57 58 59
      if(isIos){
        await program.swipe({
          startPoint: {x: 100,y: 500},
          endPoint: {x: 100,y: 630},
60
          duration: 100
61 62
        })
      }else if(isAndroid){
63 64 65 66 67
        await program.swipe({
          startPoint: {x: 100,y: 400},
          endPoint: {x: 100,y: 500},
          duration: 1000
        })
68
      }
69
      await page.waitFor(1500)
70 71
      console.log('onRefresherpullingTest',await page.data('onRefresherpullingTest'))
      console.log(platformInfo,'onRefresherabortTest',await page.data('onRefresherabortTest'))
72
      if(isIos || platformInfo.startsWith('android 10') || platformInfo.startsWith('android 11')){
73 74
        expect(await page.data('onRefresherabortTest')).toBe('refresherabort:Success')
      }
75 76
    });
  }
雪洛's avatar
雪洛 已提交
77 78 79 80 81 82 83 84 85

  it('check_refresher_snapshot', async () => {
    await page.setData({
      refresherTriggered: true
    })
    await page.waitFor(300);
    const image = await program.screenshot({fullPage: true});
    expect(image).toSaveImageSnapshot();
  });
86
});