const platformInfo = process.env.uniTestPlatformInfo.toLocaleLowerCase() const isAndroid = platformInfo.startsWith('android') const isMP = platformInfo.startsWith('mp') const isHarmony = platformInfo.startsWith('harmony') const isIOS = platformInfo.startsWith('ios') const isDom2 = process.env.UNI_APP_X_DOM2 == 'true' const PAGE_PATH = '/pages/component/switch/switch' describe('switch', () => { let page beforeAll(async () => { page = await program.reLaunch(PAGE_PATH) await page.waitFor(500) }) async function setPageData(newData) { return await page.setData({ data: newData }); } it('checked', async () => { const switch_element = await page.$('.switch-checked') await setPageData({ checked: false }) await page.waitFor(100) // TODO const newValue1 = await switch_element.property('checked') expect(newValue1.toString()).toBe(false + '') await setPageData({ checked: true }) await page.waitFor(100) // TODO const newValue2 = await switch_element.property('checked') expect(newValue2.toString()).toBe(true + '') }) it('color', async () => { if ((isHarmony || isIOS || isAndroid) && isDom2) { console.log('Switch Harmony or iOS or Android not support props color') expect(1).toBe(1) return } const switch_element = await page.$('.switch-color') expect(await switch_element.attribute('color')).toBe('#FFCC33') const color = '#00ff00' await setPageData({ color: color }) await page.waitFor(100) expect(await switch_element.attribute('color')).toBe(color) }) if(!isMP) { it('dark', async () => { if ((isHarmony || isIOS || isAndroid) && isDom2) { console.log('Switch Harmony or iOS or Android not support props background-color、fore-color、active-background-color、active-fore-color') expect(1).toBe(1) return } const dark = await page.$('#dark') const darkChecked = await page.$('#darkChecked') expect(await dark.attribute('background-color')).toBe('#1f1f1f') expect(await dark.attribute('fore-color')).toBe('#f0f0f0') expect(await darkChecked.attribute('active-background-color')).toBe('#007aff') expect(await darkChecked.attribute('active-fore-color')).toBe('#ffffff') }) } it('click', async () => { let switchElement // TODO 暂时通过获取组件内部的 class 触发模拟点击 if (isAndroid && !isDom2) { switchElement = await page.$('.uni-switch-input') await switchElement.tap() await page.waitFor(200) const {testVerifyEvent} = await page.data('data') expect(testVerifyEvent).toBe(true) } else { // switchElement = await page.$('#testTap') } // await switchElement.tap() // await page.waitFor(200) // const { // testVerifyEvent // } = await page.data() // expect(testVerifyEvent).toBe(true) }) if (isDom2 && !isMP) { it('externalClasses', async () => { const switchElement = await page.$('#darkChecked') expect(await switchElement.attribute('switch-active-class')).toContain('custom-switch-active') expect(await switchElement.attribute('thumb-active-class')).toContain('custom-thumb-active1') expect(await switchElement.attribute('thumb-class')).toContain('custom-thumb1') }) } })