diff --git a/pages/component/swiper/swiper.test.js b/pages/component/swiper/swiper.test.js index 32ac9e3fde7b2d64268bfe42d91e364a7c48d101..400a69054cb45cbaa20fc59b0ac41286a2b6ce00 100644 --- a/pages/component/swiper/swiper.test.js +++ b/pages/component/swiper/swiper.test.js @@ -1,4 +1,4 @@ -jest.setTimeout(20000); +jest.setTimeout(30000); function getData(key = '') { return new Promise(async (resolve, reject) => { @@ -72,6 +72,63 @@ describe('test swiper', () => { }) await page.waitFor(600) expect(await getData('currentValChange')).toEqual(0) + }); + + it('Trigger Event', async () => { + await page.setData({ + swiperChangeSelect: true, + swiperTransitionSelect: true, + swiperAnimationfinishSelect: true, + autoplaySelect:true + }) + await page.waitFor(2000) + console.log('currentValChange',await getData('currentValChange')) + if(await getData('currentValChange') == 1){ + await page.setData({ + autoplaySelect:false + }) + } + }); + + it('Event change-transitiont-animationfinish', async () => { + const webResult = { + current: 1, + currentItemId: 'B',//web端多了currentItemId + source: 'autoplay' , + } + const appResult = { + current: 1, + source: 'autoplay' , + } + const changeInfo = await page.data('swiperChangeEventTest') + // console.log('change',changeInfo) + expect(changeInfo.type).toBe('change') + if(process.env.uniTestPlatformInfo.startsWith('web')){ + expect(changeInfo.detail).toEqual(webResult) + }else{ + expect(changeInfo.detail).toEqual(appResult) + } + expect(changeInfo.currentTarget).not.toBeFalsy(); + expect(changeInfo.target).not.toBeFalsy(); + + const transitionInfo = await page.data('swiperTransitionTest') + // console.log('transitiont',transitionInfo,detail) + expect(transitionInfo.type).toBe('transition') + expect(transitionInfo.detail.dy).toBe(0) + expect(transitionInfo.detail.dx).toBeGreaterThan(0) + expect(transitionInfo.currentTarget).not.toBeFalsy(); + expect(transitionInfo.target).not.toBeFalsy(); + await page.waitFor(1000) + // bug:在android端第一次触发@animationfinish 得到detail中的source为空,第二次触发时正常得到source: 'autoplay' + const animationfinishInfo = await page.data('swiperAnimationfinishTest') + // console.log('animationfinish',animationfinishInfo.detail) + expect(animationfinishInfo.type).toBe('animationfinish') + if(process.env.uniTestPlatformInfo.startsWith('web')){ + expect(animationfinishInfo.detail).toEqual(webResult) + }else if(!process.env.uniTestPlatformInfo.startsWith('android')){ + expect(animationfinishInfo.detail).toEqual(appResult) + } + expect(animationfinishInfo.currentTarget).not.toBeFalsy(); + expect(animationfinishInfo.target).not.toBeFalsy(); }); - }); diff --git a/pages/component/swiper/swiper.uvue b/pages/component/swiper/swiper.uvue index 832d0de54cb45d42bbd2b7f4edce18629f589590..fccf4a08177c918082529dee28ef233948ed55f8 100644 --- a/pages/component/swiper/swiper.uvue +++ b/pages/component/swiper/swiper.uvue @@ -110,12 +110,17 @@ swiperTransitionSelect: false, swiperAnimationfinishSelect: false, swiperChangeSelect: false, - currentValChange: 0 + currentValChange: 0, + // 自动化测试 + swiperChangeEventTest:null as SwiperChangeEvent | null, + swiperTransitionTest:null as SwiperTransitionEvent | null, + swiperAnimationfinishTest:null as SwiperAnimationFinishEvent | null } - }, + }, methods: { - swiperChange: function (e : SwiperChangeEvent) { + swiperChange: function (e : SwiperChangeEvent) { + this.swiperChangeEventTest = e this.currentValChange = e.detail.current console.log(this.currentValChange) if (this.swiperChangeSelect) { @@ -123,13 +128,15 @@ console.log(e) } }, - swiperTransition: function (e : SwiperTransitionEvent) { + swiperTransition: function (e : SwiperTransitionEvent) { + this.swiperTransitionTest = e if (this.swiperTransitionSelect) { console.log("swiperTransition") console.log(e) } }, - swiperAnimationfinish: function (e : SwiperAnimationFinishEvent) { + swiperAnimationfinish: function (e : SwiperAnimationFinishEvent) { + this.swiperAnimationfinishTest = e if (this.swiperAnimationfinishSelect) { console.log("swiperAnimationfinish") console.log(e) @@ -148,7 +155,7 @@ swiperAnimationfinishChange: function (e : UniSwitchChangeEvent) { this.swiperAnimationfinishSelect = e.detail.value }, - autoplayChange: function (e : UniSwitchChangeEvent) { + autoplayChange: function (e : UniSwitchChangeEvent) { this.autoplaySelect = e.detail.value }, verticalChange: function (e : UniSwitchChangeEvent) {