diff --git a/src/image-preview/ImagePreview.js b/src/image-preview/ImagePreview.js index fd93a4a3d..0494beb0d 100644 --- a/src/image-preview/ImagePreview.js +++ b/src/image-preview/ImagePreview.js @@ -319,6 +319,7 @@ export default createComponent({ return ( <Swipe ref="swipe" + lazyRender loop={this.loop} class={bem('swipe')} indicatorColor="white" diff --git a/src/image-preview/test/__snapshots__/index.spec.js.snap b/src/image-preview/test/__snapshots__/index.spec.js.snap index c3326cf37..b4c5692e2 100644 --- a/src/image-preview/test/__snapshots__/index.spec.js.snap +++ b/src/image-preview/test/__snapshots__/index.spec.js.snap @@ -39,62 +39,13 @@ exports[`index slot 1`] = ` </div> `; -exports[`lazy-load prop 1`] = ` -<div class="van-image-preview" name="van-fade"> - <div class="van-swipe van-image-preview__swipe"> - <div class="van-swipe__track" style="width: 0px; transition-duration: 0ms; transform: translateX(0px);"> - <div class="van-swipe-item" style="width: 0px;"> - <div class="van-image van-image-preview__image" style="transition-duration: .3s;"><img class="van-image__img" style="object-fit: contain;"> - <div class="van-image__loading"> - <div class="van-loading van-loading--spinner"><span class="van-loading__spinner van-loading__spinner--spinner"><i></i><i></i><i></i><i></i><i></i><i></i><i></i><i></i><i></i><i></i><i></i><i></i></span></div> - </div> - </div> - </div> - <div class="van-swipe-item" style="width: 0px;"> - <div class="van-image van-image-preview__image"><img class="van-image__img" style="object-fit: contain;"> - <div class="van-image__loading"> - <div class="van-loading van-loading--spinner"><span class="van-loading__spinner van-loading__spinner--spinner"><i></i><i></i><i></i><i></i><i></i><i></i><i></i><i></i><i></i><i></i><i></i><i></i></span></div> - </div> - </div> - </div> - <div class="van-swipe-item" style="width: 0px;"> - <div class="van-image van-image-preview__image"><img class="van-image__img" style="object-fit: contain;"> - <div class="van-image__loading"> - <div class="van-loading van-loading--spinner"><span class="van-loading__spinner van-loading__spinner--spinner"><i></i><i></i><i></i><i></i><i></i><i></i><i></i><i></i><i></i><i></i><i></i><i></i></span></div> - </div> - </div> - </div> - </div> - </div> - <div class="van-image-preview__index">1 / 3</div> -</div> -`; - exports[`render image 1`] = ` <div class="van-image-preview" name="van-fade"> <div class="van-swipe van-image-preview__swipe"> <div class="van-swipe__track" style="width: 0px; transition-duration: 500ms; transform: translateX(0px);"> - <div class="van-swipe-item" style="width: 0px;"> - <div class="van-image van-image-preview__image" style="transition-duration: .3s;"><img src="https://img.yzcdn.cn/1.png" class="van-image__img" style="object-fit: contain;"> - <div class="van-image__loading"> - <div class="van-loading van-loading--spinner"><span class="van-loading__spinner van-loading__spinner--spinner"><i></i><i></i><i></i><i></i><i></i><i></i><i></i><i></i><i></i><i></i><i></i><i></i></span></div> - </div> - </div> - </div> - <div class="van-swipe-item" style="width: 0px;"> - <div class="van-image van-image-preview__image"><img src="https://img.yzcdn.cn/2.png" class="van-image__img" style="object-fit: contain;"> - <div class="van-image__loading"> - <div class="van-loading van-loading--spinner"><span class="van-loading__spinner van-loading__spinner--spinner"><i></i><i></i><i></i><i></i><i></i><i></i><i></i><i></i><i></i><i></i><i></i><i></i></span></div> - </div> - </div> - </div> - <div class="van-swipe-item" style="width: 0px;"> - <div class="van-image van-image-preview__image"><img src="https://img.yzcdn.cn/3.png" class="van-image__img" style="object-fit: contain;"> - <div class="van-image__loading"> - <div class="van-loading van-loading--spinner"><span class="van-loading__spinner van-loading__spinner--spinner"><i></i><i></i><i></i><i></i><i></i><i></i><i></i><i></i><i></i><i></i><i></i><i></i></span></div> - </div> - </div> - </div> + <div class="van-swipe-item" style="width: 0px;"></div> + <div class="van-swipe-item" style="width: 0px;"></div> + <div class="van-swipe-item" style="width: 0px;"></div> </div> </div> <div class="van-image-preview__index">1 / 3</div> @@ -110,32 +61,9 @@ exports[`set show-index prop to false 1`] = ` `; exports[`zoom 1`] = ` -<div class="van-image-preview" name="van-fade"> - <div class="van-swipe van-image-preview__swipe"> - <div class="van-swipe__track" style="width: 300px; transition-duration: 0ms; transform: translateX(0px);"> - <div class="van-swipe-item" style="width: 100px;"> - <div class="van-image van-image-preview__image" style="transition-duration: 0s; transform: scale3d(2, 2, 1) translate(0px, NaNpx);"><img src="https://img.yzcdn.cn/1.png" class="van-image__img" style="object-fit: contain;"> - <div class="van-image__loading"> - <div class="van-loading van-loading--spinner"><span class="van-loading__spinner van-loading__spinner--spinner"><i></i><i></i><i></i><i></i><i></i><i></i><i></i><i></i><i></i><i></i><i></i><i></i></span></div> - </div> - </div> - </div> - <div class="van-swipe-item" style="width: 100px;"> - <div class="van-image van-image-preview__image"><img src="https://img.yzcdn.cn/2.png" class="van-image__img" style="object-fit: contain;"> - <div class="van-image__loading"> - <div class="van-loading van-loading--spinner"><span class="van-loading__spinner van-loading__spinner--spinner"><i></i><i></i><i></i><i></i><i></i><i></i><i></i><i></i><i></i><i></i><i></i><i></i></span></div> - </div> - </div> - </div> - <div class="van-swipe-item" style="width: 100px;"> - <div class="van-image van-image-preview__image"><img src="https://img.yzcdn.cn/3.png" class="van-image__img" style="object-fit: contain;"> - <div class="van-image__loading"> - <div class="van-loading van-loading--spinner"><span class="van-loading__spinner van-loading__spinner--spinner"><i></i><i></i><i></i><i></i><i></i><i></i><i></i><i></i><i></i><i></i><i></i><i></i></span></div> - </div> - </div> - </div> - </div> +<div class="van-image van-image-preview__image" style="transition-duration: 0s; transform: scale3d(2, 2, 1) translate(0px, NaNpx);"><img src="https://img.yzcdn.cn/1.png" class="van-image__img" style="object-fit: contain;"> + <div class="van-image__loading"> + <div class="van-loading van-loading--spinner"><span class="van-loading__spinner van-loading__spinner--spinner"><i></i><i></i><i></i><i></i><i></i><i></i><i></i><i></i><i></i><i></i><i></i><i></i></span></div> </div> - <div class="van-image-preview__index">1 / 3</div> </div> `; diff --git a/src/image-preview/test/index.spec.js b/src/image-preview/test/index.spec.js index 2b7c5834d..e572ad3b7 100644 --- a/src/image-preview/test/index.spec.js +++ b/src/image-preview/test/index.spec.js @@ -177,7 +177,8 @@ test('onScale option', async done => { }, }); - const image = instance.$el.getElementsByTagName('img')[0]; + await later(); + const image = instance.$el.querySelector('img'); triggerZoom(image, 300, 300); Element.prototype.getBoundingClientRect = getBoundingClientRect; }); @@ -195,10 +196,12 @@ test('zoom', async () => { propsData: { images, value: true }, }); - const image = wrapper.find('img'); + await later(); + const image = wrapper.find('.van-image'); triggerZoom(image, 300, 300); triggerDrag(image, 300, 300); - expect(wrapper).toMatchSnapshot(); + + expect(image).toMatchSnapshot(); Element.prototype.getBoundingClientRect = getBoundingClientRect; }); @@ -257,18 +260,3 @@ test('closeOnPopstate', () => { trigger(window, 'popstate'); expect(wrapper.emitted('input')[1]).toBeFalsy(); }); - -test('lazy-load prop', () => { - const wrapper = mount(ImagePreviewVue, { - propsData: { - images, - lazyLoad: true, - }, - }); - - wrapper.setProps({ - value: true, - }); - - expect(wrapper).toMatchSnapshot(); -}); diff --git a/src/uploader/test/index.spec.js b/src/uploader/test/index.spec.js index ca79464ac..8c39304be 100644 --- a/src/uploader/test/index.spec.js +++ b/src/uploader/test/index.spec.js @@ -382,7 +382,7 @@ test('before-delete prop rejected', async () => { expect(wrapper.emitted('delete')).toBeFalsy(); }); -test('click to preview image', () => { +test('click to preview image', async () => { const wrapper = mount(Uploader, { propsData: { previewFullImage: false, @@ -397,6 +397,8 @@ test('click to preview image', () => { wrapper.setProps({ previewFullImage: true }); wrapper.find('.van-image').trigger('click'); + await later(); + const imagePreviewNode2 = document.querySelector('.van-image-preview'); const images = imagePreviewNode2.querySelectorAll( '.van-image-preview__image'