From cccb6cec831a7424c7763c9607c973cf5119d8a5 Mon Sep 17 00:00:00 2001 From: ogerly Date: Wed, 22 Apr 2020 15:06:55 +0200 Subject: [PATCH] test: user + pagination ok, rest WIP --- .../SearchResults/SearchResults.spec.js | 79 ++++++++++++++----- .../features/SearchResults/SearchResults.vue | 7 +- 2 files changed, 64 insertions(+), 22 deletions(-) diff --git a/webapp/components/_new/features/SearchResults/SearchResults.spec.js b/webapp/components/_new/features/SearchResults/SearchResults.spec.js index b52f20568..522b5ee68 100644 --- a/webapp/components/_new/features/SearchResults/SearchResults.spec.js +++ b/webapp/components/_new/features/SearchResults/SearchResults.spec.js @@ -1,14 +1,20 @@ import { config, mount } from '@vue/test-utils' import Vuex from 'vuex' import SearchResults from './SearchResults' -import { post } from '~/components/PostTeaser/PostTeaser.story' -import { user } from '~/components/UserTeaser/UserTeaser.story' + +import helpers from '~/storybook/helpers' + +helpers.init() + const localVue = global.localVue +localVue.directive('scrollTo', jest.fn()) config.stubs['client-only'] = '' config.stubs['nuxt-link'] = '' + + describe('SearchResults', () => { let mocks, getters, propsData, wrapper const Wrapper = () => { @@ -44,37 +50,74 @@ describe('SearchResults', () => { }) }) - describe('contains posts', () => { + + describe('contains users less as 25 results', () => { beforeEach(() => { - console.log - wrapper.setData({ posts: [post], activeTab: 'Post' }) + wrapper.setData( { users: helpers.fakeUser(1), userCount:1, activeTab: 'User' }) }) - it('renders post-teaser component', () => { - expect(wrapper.find('.post-teaser').exists()).toBe(true) + it('renders pagination', () => { + expect(wrapper.find('.pagination-buttons').exists()).toBe(true) }) - }) - describe('contains users', () => { + it('show NOT pagination', () => { + + expect(wrapper.find('.pagination-buttons').attributes().style).toBe('display: none;') + + }) + + describe('contains users more as 25 results', () => { beforeEach(() => { - wrapper.setData({ users: [user], activeTab: 'User' }) + wrapper.setData( { users: helpers.fakeUser(52), userCount:52, activeTab: 'User' }) }) - it('renders user-list', () => { + it('renders user-list pagination', () => { expect(wrapper.find('.user-list').exists()).toBe(true) }) - }) - describe('switchTab', () => { - beforeEach(() => { - wrapper.setData({ posts: [post], users: [user], activeTab: 'Post' }) - wrapper.find('.tab-navigation').vm.$emit('switchTab', 'User') + it('renders pagination', () => { + expect(wrapper.find('.pagination-buttons').exists()).toBe(true) }) - it('switches activeTab when event is emitted', () => { - expect(wrapper.find('.user-list').exists()).toBe(true) + it('show pagination', () => { + + expect(wrapper.find('.pagination-buttons').attributes().style).toBe('') + }) }) + + + + + }) + + + /* + describe('contains posts', () => { + beforeEach(() => { + console.log + wrapper.setData({ posts: [post], activeTab: 'Post' }) + }) + + it('renders post-teaser component', () => { + expect(wrapper.find('.post-teaser').exists()).toBe(true) + }) + }) + */ + + /* + describe('switchTab', () => { + beforeEach(() => { + wrapper.setData({ posts: [post], users: [user], activeTab: 'Post' }) + wrapper.find('.tab-navigation').vm.$emit('switchTab', 'User') + }) + + it('switches activeTab when event is emitted', () => { + expect(wrapper.find('.user-list').exists()).toBe(true) + }) + }) + */ + }) }) }) diff --git a/webapp/components/_new/features/SearchResults/SearchResults.vue b/webapp/components/_new/features/SearchResults/SearchResults.vue index 73ad3feb0..99f300308 100644 --- a/webapp/components/_new/features/SearchResults/SearchResults.vue +++ b/webapp/components/_new/features/SearchResults/SearchResults.vue @@ -145,7 +145,6 @@ export default { postsOffset: 0, usersOffset: 0, hashtagsOffset: 0, - searchCount: 0, } }, computed: { @@ -198,6 +197,9 @@ export default { hasMoreHashtags() { return (this.hashtagPage + 1) * this.pageSize < this.hashtagCount }, + searchCount() { + return this.postCount + this.userCount + this.hashtagCount + } }, methods: { clearPage() { @@ -252,7 +254,6 @@ export default { update({ searchPosts }) { this.posts = searchPosts.posts this.postCount = searchPosts.postCount - this.searchCount = this.postCount + this.userCount + this.hashtagCount this.clearPage() if (this.postCount > 0) this.activeTab = 'Post' }, @@ -276,7 +277,6 @@ export default { update({ searchUsers }) { this.users = searchUsers.users this.userCount = searchUsers.userCount - this.searchCount = this.postCount + this.userCount + this.hashtagCount this.clearPage() if (this.postCount === 0 && this.userCount > 0) this.activeTab = 'User' }, @@ -300,7 +300,6 @@ export default { update({ searchHashtags }) { this.hashtags = searchHashtags.hashtags this.hashtagCount = searchHashtags.hashtagCount - this.searchCount = this.postCount + this.userCount + this.hashtagCount this.clearPage() if (this.postCount === 0 && this.userCount === 0 && this.hashtagCount > 0) this.activeTab = 'Hashtag'