keep-alive.test.js 3.4 KB
Newer Older
1 2 3 4 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 102 103
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'

describe('keep-alive', () => {
	if (process.env.uniTestPlatformInfo.toLocaleLowerCase().startsWith('ios')) {
		it("IOS platform not support", async () => {
			expect(1).toBe(1);
		});
		return
	}
	let page = null
	const testKeepAlive = async () => {
		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 page.waitFor('view')
		await testKeepAlive()
	})
	it('keep-alive Composition API', async () => {
		page = await program.reLaunch(PAGE_PATH_COMPOSITION)
		await page.waitFor('view')
		await testKeepAlive()
	})
})