文件
OmniCard/mpuniapp/pages/component/swiper/swiper.test.js

137 行
4.1 KiB
JavaScript

describe('test swiper', () => {
const platformInfo = process.env.uniTestPlatformInfo.toLocaleLowerCase()
const isMP = platformInfo.startsWith('mp')
const isWeb = platformInfo.startsWith('web')
const isHarmony = platformInfo.startsWith('harmony')
const isiOS = platformInfo.startsWith('ios')
const isAndroid = platformInfo.startsWith('android')
const isDom2 = process.env.UNI_APP_X_DOM2 === "true"
let page;
const detailResWithCurrentItemId = {
current: 1,
currentItemId: 'B',//web端多了currentItemId
source: 'autoplay' ,
}
const detailRes = {
current: 1,
source: 'autoplay' ,
}
beforeAll(async () => {
page = await program.reLaunch('/pages/component/swiper/swiper')
await page.waitFor('view')
})
if(!isMP) {
it('check autoplay loop', async () => {
await page.setData({
data:{
currentValChange: 0,
autoplaySelect: true,
}
})
const swiperChangeInterval = (isHarmony && !isDom2) ? 2700 : 2500
await page.waitFor(swiperChangeInterval)
expect(await page.data('data.currentValChange')).toEqual(1)
await page.waitFor(swiperChangeInterval)
expect(await page.data('data.currentValChange')).toEqual(2)
await page.waitFor(swiperChangeInterval)
expect(await page.data('data.currentValChange')).toEqual(0)
await page.setData({
data:{autoplaySelect: false}
})
await page.waitFor(300)
});
}
it('check current', async () => {
if(isMP) {
// 微信小程序表现较为怪异,interval显式的设置非0的情况下,会无视autoplay属性。interval默认值5000
await page.setData({
data:{intervalSelect: 0,}
})
}
await page.setData({
data:{currentVal: 2,}
})
await page.waitFor(600)
expect(await page.data('data.currentValChange')).toEqual(2)
await page.setData({
data:{currentVal: 0,}
})
await page.waitFor(600)
expect(await page.data('data.currentValChange')).toEqual(0)
if(isMP) {
await page.setData({
data:{intervalSelect: 2000,}
})
}
});
if (!isDom2) {
it('check currentId', async () => {
await page.setData({
data:{currentItemIdVal: 'C',}
})
await page.waitFor(800)
expect(await page.data('data.currentValChange')).toEqual(2)
await page.setData({
data:{currentItemIdVal: 'A',}
})
await page.waitFor(800)
expect(await page.data('data.currentValChange')).toEqual(0)
});
}
it('Trigger Event', async () => {
await page.setData({
data:{
swiperChangeSelect: true,
swiperTransitionSelect: true,
swiperAnimationfinishSelect: true,
autoplaySelect:true,
}
})
await page.waitFor(2000)
await page.waitFor(async()=>{
return await page.data('data.currentValChange') == 1
})
await page.setData({
data:{autoplaySelect:false}
})
});
it('Event transition', async () => {
await page.waitFor(100)
const transitionDetailInfo = await page.data('data.transitionDetailTest')
expect(transitionDetailInfo.dy).toBe(0)
expect(transitionDetailInfo.dx).not.toBe(0)
expect(await page.data('data.isTransitionTest')).toBe('transition:Success')
});
it('Event change', async () => {
const changeDetailInfo = await page.data('data.changeDetailTest')
if(isWeb || isMP || isHarmony || (isiOS && isDom2) || (isAndroid && isDom2)){
expect(changeDetailInfo).toEqual(detailResWithCurrentItemId)
}else{
expect(changeDetailInfo).toEqual(detailRes)
}
expect(await page.data('data.isChangeTest')).toBe('change:Success')
});
it('Event animationfinish', async () => {
// 等待最后一个动画结束animationfinish
await page.waitFor(2000)
const animationfinishDetailInfo = await page.data('data.animationfinishDetailTest')
if(isWeb || isMP || isHarmony || (isiOS && isDom2) || (isAndroid && isDom2)){
expect(animationfinishDetailInfo).toEqual(detailResWithCurrentItemId)
}else{
expect(animationfinishDetailInfo).toEqual(detailRes)
}
expect(await page.data('data.isAnimationfinishTest')).toBe('animationfinish:Success')
});
});