From ec7a5865f720306466d7cc1b251ae1fa573f1705 Mon Sep 17 00:00:00 2001 From: Matt Rider Date: Fri, 2 Aug 2019 15:41:19 +0200 Subject: [PATCH] Update tests, showFilterPostsDropdown only on route --- .../components/FilterMenu/FilterMenu.spec.js | 48 ++++++------------- webapp/components/FilterMenu/FilterMenu.vue | 8 +--- .../FilterPosts/FilterPosts.spec.js | 41 ++++++++++++++++ webapp/components/FilterPosts/FilterPosts.vue | 1 - .../FilterPosts/FilterPostsMenuItems.vue | 26 +++++----- webapp/layouts/default.vue | 8 +++- webapp/locales/de.json | 6 +-- webapp/locales/en.json | 6 +-- webapp/pages/index.spec.js | 9 ++-- webapp/pages/index.vue | 12 ++--- webapp/store/default.js | 17 +++++++ 11 files changed, 112 insertions(+), 70 deletions(-) create mode 100644 webapp/store/default.js diff --git a/webapp/components/FilterMenu/FilterMenu.spec.js b/webapp/components/FilterMenu/FilterMenu.spec.js index e345531d0..948abb0eb 100644 --- a/webapp/components/FilterMenu/FilterMenu.spec.js +++ b/webapp/components/FilterMenu/FilterMenu.spec.js @@ -13,57 +13,39 @@ describe('FilterMenu.vue', () => { let mocks let propsData - const createWrapper = mountMethod => { - return mountMethod(FilterMenu, { - propsData, - mocks, - localVue, - }) - } - beforeEach(() => { mocks = { $t: () => {} } - propsData = {} }) describe('given a user', () => { beforeEach(() => { propsData = { - user: { - id: '4711', - }, + hashtag: {}, } }) describe('mount', () => { + const Wrapper = () => { + return mount(FilterMenu, { mocks, localVue, propsData }) + } beforeEach(() => { - wrapper = createWrapper(mount) + wrapper = Wrapper() }) - it('renders a card', () => { + it('does not render a card if there are no hashtags', () => { expect(wrapper.is('.ds-card')).toBe(true) }) - describe('click "filter-by-followed-authors-only" button', () => { - it('emits filterBubble object', () => { - wrapper.find({ name: 'filter-by-followed-authors-only' }).trigger('click') - expect(wrapper.emitted('changeFilterBubble')).toBeTruthy() - }) + it('renders a card if there are hashtags', () => { + propsData.hashtag = { hashtag: 'Frieden' } + wrapper = Wrapper() + expect(wrapper.is('.ds-card')).toBe(true) + }) - it('toggles filterBubble.author property', () => { - wrapper.find({ name: 'filter-by-followed-authors-only' }).trigger('click') - expect(wrapper.emitted('changeFilterBubble')[0]).toEqual([ - { author: { followedBy_some: { id: '4711' } } }, - ]) - wrapper.find({ name: 'filter-by-followed-authors-only' }).trigger('click') - expect(wrapper.emitted('changeFilterBubble')[1]).toEqual([{}]) - }) - - it('makes button primary', () => { - wrapper.find({ name: 'filter-by-followed-authors-only' }).trigger('click') - expect( - wrapper.find({ name: 'filter-by-followed-authors-only' }).classes('ds-button-primary'), - ).toBe(true) + describe('click "clear-search-button" button', () => { + it('emits clearSearch', () => { + wrapper.find({ name: 'clear-search-button' }).trigger('click') + expect(wrapper.emitted().clearSearch).toHaveLength(1) }) }) }) diff --git a/webapp/components/FilterMenu/FilterMenu.vue b/webapp/components/FilterMenu/FilterMenu.vue index 46820f2ee..269c86250 100644 --- a/webapp/components/FilterMenu/FilterMenu.vue +++ b/webapp/components/FilterMenu/FilterMenu.vue @@ -14,7 +14,7 @@ placement: 'left', delay: { show: 500 }, }" - name="filter-by-followed-authors-only" + name="clear-search-button" icon="close" @click="clearSearch" /> @@ -28,14 +28,8 @@