From 3a642fce0cc8585297d6de487165874a86c0ebd8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=99=88=E5=98=89=E6=B6=B5?= Date: Tue, 29 Aug 2017 16:45:28 +0800 Subject: [PATCH] Popup: add test cases --- packages/mixins/popup/index.js | 1 + test/unit/specs/pay-order.spec.js | 2 +- test/unit/specs/popup.spec.js | 57 +++++++++++++++++++++++++++++++ 3 files changed, 59 insertions(+), 1 deletion(-) diff --git a/packages/mixins/popup/index.js b/packages/mixins/popup/index.js index cb98e2638..52317cbe2 100644 --- a/packages/mixins/popup/index.js +++ b/packages/mixins/popup/index.js @@ -99,6 +99,7 @@ export default { * 显示popup */ open() { + /* istanbul ignore if */ if (this.$isServer) return; if (this.opened) return; diff --git a/test/unit/specs/pay-order.spec.js b/test/unit/specs/pay-order.spec.js index c6941a328..6dab66ebf 100644 --- a/test/unit/specs/pay-order.spec.js +++ b/test/unit/specs/pay-order.spec.js @@ -34,7 +34,7 @@ describe('PayOrder', () => { propsData: { price: 3005, buttonText: '提交订单', - buttonType: 'normal' + buttonType: 'default' } }); diff --git a/test/unit/specs/popup.spec.js b/test/unit/specs/popup.spec.js index 202cfbdb5..250109f50 100644 --- a/test/unit/specs/popup.spec.js +++ b/test/unit/specs/popup.spec.js @@ -1,5 +1,6 @@ import Popup from 'packages/popup'; import { mount } from 'avoriaz'; +import { triggerTouch } from '../utils'; describe('Popup', () => { let wrapper; @@ -57,4 +58,60 @@ describe('Popup', () => { expect(wrapper.hasClass('van-popup')).to.be.true; expect(wrapper.instance().currentTransition).to.equal('popup-fade'); }); + + it('popup prevent scroll', (done) => { + wrapper = mount(Popup, { + propsData: { + preventScroll: true, + value: true + } + }); + + expect(wrapper.hasClass('van-popup')).to.be.true; + + setTimeout(() => { + expect(wrapper.data().currentValue).to.be.true; + wrapper.vm.value = false; + triggerTouch(document, 'touchstart', 0, 0); + triggerTouch(document, 'touchmove', 0, 10); + triggerTouch(document, 'touchmove', 0, 30); + triggerTouch(document, 'touchmove', 0, -30); + + setTimeout(() => { + expect(wrapper.data().currentValue).to.be.false; + done(); + }, 300); + }, 300); + }); + + it('popup modal', (done) => { + wrapper = mount(Popup, { + propsData: { + preventScroll: true, + value: true + } + }); + + wrapper.vm.$on('input', val => { + wrapper.vm.value = val; + }); + + expect(wrapper.hasClass('van-popup')).to.be.true; + + const modal = document.querySelector('.van-modal'); + + setTimeout(() => { + triggerTouch(modal, 'touchstart', 0, 0); + triggerTouch(modal, 'touchmove', 0, 10); + triggerTouch(modal, 'touchmove', 0, 30); + triggerTouch(modal, 'touchmove', 0, -30); + expect(modal).to.exist; + + modal.click(); + setTimeout(() => { + expect(wrapper.data().currentValue).to.be.false; + done(); + }, 300); + }, 300); + }); });