137 行
4.1 KiB
JavaScript
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')
|
|
});
|
|
});
|