diff --git a/webapp/components/MasonryGrid/MasonryGridItem.spec.js b/webapp/components/MasonryGrid/MasonryGridItem.spec.js index d37be8d58..66b0607fd 100644 --- a/webapp/components/MasonryGrid/MasonryGridItem.spec.js +++ b/webapp/components/MasonryGrid/MasonryGridItem.spec.js @@ -1,4 +1,4 @@ -import { config, mount } from '@vue/test-utils' +import { config, shallowMount } from '@vue/test-utils' import MasonryGridItem from './MasonryGridItem' const localVue = global.localVue @@ -8,41 +8,24 @@ config.stubs['ds-grid-item'] = '' describe('MasonryGridItem', () => { let wrapper - describe('given an imageAspectRatio', () => { - it('sets the initial rowSpan to 13 when the ratio is higher than 1.3', () => { - const propsData = { imageAspectRatio: 2 } - wrapper = mount(MasonryGridItem, { localVue, propsData }) - - expect(wrapper.vm.rowSpan).toBe(13) - }) - - it('sets the initial rowSpan to 15 when the ratio is between 1.3 and 1', () => { - const propsData = { imageAspectRatio: 1.1 } - wrapper = mount(MasonryGridItem, { localVue, propsData }) - - expect(wrapper.vm.rowSpan).toBe(15) - }) - - it('sets the initial rowSpan to 18 when the ratio is between 1 and 0.7', () => { - const propsData = { imageAspectRatio: 0.7 } - wrapper = mount(MasonryGridItem, { localVue, propsData }) - - expect(wrapper.vm.rowSpan).toBe(18) - }) - - it('sets the initial rowSpan to 25 when the ratio is lower than 0.7', () => { - const propsData = { imageAspectRatio: 0.3 } - wrapper = mount(MasonryGridItem, { localVue, propsData }) - - expect(wrapper.vm.rowSpan).toBe(25) - }) + beforeEach(() => { + wrapper = shallowMount(MasonryGridItem, { localVue }) + wrapper.vm.$parent.$emit = jest.fn() }) - describe('given no aspect ratio', () => { - it('sets the initial rowSpan to 8 when not given an imageAspectRatio', () => { - wrapper = mount(MasonryGridItem, { localVue }) + it('emits "calculating-item-height" when starting calculation', async () => { + wrapper.vm.calculateItemHeight() + await wrapper.vm.$nextTick() - expect(wrapper.vm.rowSpan).toBe(8) - }) + const firstCallArgument = wrapper.vm.$parent.$emit.mock.calls[0][0] + expect(firstCallArgument).toBe('calculating-item-height') + }) + + it('emits "finished-calculating-item-height" after the calculation', async () => { + wrapper.vm.calculateItemHeight() + await wrapper.vm.$nextTick() + + const secondCallArgument = wrapper.vm.$parent.$emit.mock.calls[1][0] + expect(secondCallArgument).toBe('finished-calculating-item-height') }) }) diff --git a/webapp/components/MasonryGrid/MasonryGridItem.vue b/webapp/components/MasonryGrid/MasonryGridItem.vue index 91fb8a1d8..937da8f1f 100644 --- a/webapp/components/MasonryGrid/MasonryGridItem.vue +++ b/webapp/components/MasonryGrid/MasonryGridItem.vue @@ -5,17 +5,6 @@ diff --git a/webapp/components/PostCard/PostCard.vue b/webapp/components/PostCard/PostCard.vue index 79ba9e8f0..60444c816 100644 --- a/webapp/components/PostCard/PostCard.vue +++ b/webapp/components/PostCard/PostCard.vue @@ -141,15 +141,6 @@ export default { this.$emit('unpinPost', post) }, }, - mounted() { - const width = this.$el.offsetWidth - const height = Math.min(width / this.post.imageAspectRatio, 2000) - const imageElement = this.$el.querySelector('.ds-card-image') - - if (imageElement) { - imageElement.style.height = `${height}px` - } - }, } diff --git a/webapp/pages/index.vue b/webapp/pages/index.vue index 3cd669bfe..723232a2f 100644 --- a/webapp/pages/index.vue +++ b/webapp/pages/index.vue @@ -21,13 +21,10 @@