keep-alive.test.js 3.5 KB
Newer Older
1 2
const PAGE_PATH_OPTIONS = '/pages/built-in/component/keep-alive/keep-alive-options'
const PAGE_PATH_COMPOSITION = '/pages/built-in/component/keep-alive/keep-alive-composition'
3 4

describe('keep-alive', () => {
D
DCloud_LXH 已提交
5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101
  if (process.env.uniTestPlatformInfo.toLocaleLowerCase().startsWith('ios')) {
    it("IOS platform not support", async () => {
      expect(1).toBe(1);
    });
    return
  }
  let page = null
  const testKeepAlive = async () => {
    await page.waitFor('view')
    const shouldExcludeBtns = await page.$$('.should-exclude-btn')
    for (let i = 0; i < shouldExcludeBtns.length; i++) {
      await shouldExcludeBtns[i].tap()
    }
    let shouldExcludeTexts = await page.$$('.should-exclude-text')
    for (let i = 0; i < shouldExcludeTexts.length; i++) {
      expect(await shouldExcludeTexts[i].text()).toBe('count: 1')
    }

    const showCounterBtn = await page.$('.show-counter')
    await showCounterBtn.tap()

    const activatedNum = await page.$('#activated-num')
    expect(await activatedNum.text()).toBe('activated num: 1')
    const deactivatedNum = await page.$('#deactivated-num')
    expect(await deactivatedNum.text()).toBe('deactivated num: 0')

    const counterBtns = await page.$$('.counter-btn')
    for (let i = 0; i < counterBtns.length; i++) {
      await counterBtns[i].tap()
    }

    const showShouldExcludeBtn = await page.$('.show-should-exclude')
    await showShouldExcludeBtn.tap()

    shouldExcludeTexts = await page.$$('.should-exclude-text')
    for (let i = 0; i < shouldExcludeTexts.length; i++) {
      if (i < shouldExcludeBtns.length - 1) {
        expect(await shouldExcludeTexts[i].text()).toBe('count: 0')
      } else {
        expect(await shouldExcludeTexts[i].text()).toBe('count: 1')
      }
    }

    await showCounterBtn.tap()

    expect(await activatedNum.text()).toBe('activated num: 2')
    expect(await deactivatedNum.text()).toBe('deactivated num: 1')

    let counterTexts = await page.$$('.counter-text')
    for (let i = 0; i < counterTexts.length; i++) {
      expect(await counterTexts[i].text()).toBe('count: 1')
    }

    const showMessageBtn = await page.$('.show-message')
    await showMessageBtn.tap()

    const chnageMessageBtns = await page.$$('.change-message')
    for (let i = 0; i < chnageMessageBtns.length; i++) {
      await chnageMessageBtns[i].tap()
    }

    let messageTexts = await page.$$('.message-text')
    for (let i = 0; i < messageTexts.length; i++) {
      expect(await messageTexts[i].text()).toBe('msg: message changed')
    }

    await showCounterBtn.tap()

    expect(await activatedNum.text()).toBe('activated num: 3')
    expect(await deactivatedNum.text()).toBe('deactivated num: 2')

    counterTexts = await page.$$('.counter-text')
    for (let i = 0; i < counterTexts.length; i++) {
      expect(await counterTexts[i].text()).toBe('count: 1')
    }

    await showMessageBtn.tap()

    messageTexts = await page.$$('.message-text')
    for (let i = 0; i < messageTexts.length; i++) {
      expect(await messageTexts[i].text()).toBe('msg: message changed')
    }

    await showShouldExcludeBtn.tap()
    shouldExcludeTexts = await page.$$('.should-exclude-text')
    for (let i = 0; i < shouldExcludeTexts.length; i++) {
      expect(await shouldExcludeTexts[i].text()).toBe('count: 0')
    }
  }
  it('keep-alive Options API', async () => {
    page = await program.reLaunch(PAGE_PATH_OPTIONS)
    await testKeepAlive()
  })
  it('keep-alive Composition API', async () => {
    page = await program.reLaunch(PAGE_PATH_COMPOSITION)
    await testKeepAlive()
  })
102
})