From 2171add6f31208faf054e07281ce5a500080c34c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Robert=20Sch=C3=A4fer?= Date: Thu, 6 Jun 2019 12:35:49 +0200 Subject: [PATCH 01/10] Disable the location.reloads It might create better user experience, but for the small user group I think the complexity is worse than the feature itself. --- webapp/components/Modal/DisableModal.vue | 3 --- webapp/components/ReleaseModal/ReleaseModal.vue | 8 -------- 2 files changed, 11 deletions(-) diff --git a/webapp/components/Modal/DisableModal.vue b/webapp/components/Modal/DisableModal.vue index 988ecc8af..54c43472f 100644 --- a/webapp/components/Modal/DisableModal.vue +++ b/webapp/components/Modal/DisableModal.vue @@ -68,9 +68,6 @@ export default { setTimeout(() => { this.$emit('close') }, 1000) - setTimeout(() => { - location.reload() - }, 250) } catch (err) { this.$toast.error(err.message) } diff --git a/webapp/components/ReleaseModal/ReleaseModal.vue b/webapp/components/ReleaseModal/ReleaseModal.vue index f414d4328..79abe7765 100644 --- a/webapp/components/ReleaseModal/ReleaseModal.vue +++ b/webapp/components/ReleaseModal/ReleaseModal.vue @@ -57,17 +57,9 @@ export default { }) this.$toast.success(this.$t('release.success')) this.isOpen = false - /* - setTimeout(() => { - location.reload() - }, 1500) - */ setTimeout(() => { this.$emit('close') }, 1000) - setTimeout(() => { - location.reload() - }, 250) } catch (err) { this.$toast.error(err.message) } From 58f272876e9196d37b8526c3474cf9352570af02 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Robert=20Sch=C3=A4fer?= Date: Thu, 6 Jun 2019 15:30:25 +0200 Subject: [PATCH 02/10] Frontend uses `neo4j-graphql-js`'s filters --- .../components/FilterMenu/FilterMenu.spec.js | 55 ++++++++++++------- webapp/components/FilterMenu/FilterMenu.vue | 26 +++++---- webapp/pages/index.vue | 20 ++++--- 3 files changed, 63 insertions(+), 38 deletions(-) diff --git a/webapp/components/FilterMenu/FilterMenu.spec.js b/webapp/components/FilterMenu/FilterMenu.spec.js index c312a401b..030ad20da 100644 --- a/webapp/components/FilterMenu/FilterMenu.spec.js +++ b/webapp/components/FilterMenu/FilterMenu.spec.js @@ -9,9 +9,11 @@ localVue.use(Styleguide) describe('FilterMenu.vue', () => { let wrapper let mocks + let propsData const createWrapper = mountMethod => { return mountMethod(FilterMenu, { + propsData, mocks, localVue, }) @@ -19,35 +21,48 @@ describe('FilterMenu.vue', () => { beforeEach(() => { mocks = { $t: () => {} } + propsData = {} }) - describe('mount', () => { + describe('given a user', () => { beforeEach(() => { - wrapper = createWrapper(mount) + propsData = { + user: { + id: '4711', + }, + } }) - it('renders a card', () => { - 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() + describe('mount', () => { + beforeEach(() => { + wrapper = createWrapper(mount) }) - it('toggles filterBubble.author property', () => { - wrapper.find({ name: 'filter-by-followed-authors-only' }).trigger('click') - expect(wrapper.emitted('changeFilterBubble')[0]).toEqual([{ author: 'following' }]) - wrapper.find({ name: 'filter-by-followed-authors-only' }).trigger('click') - expect(wrapper.emitted('changeFilterBubble')[1]).toEqual([{ author: 'all' }]) + it('renders a card', () => { + expect(wrapper.is('.ds-card')).toBe(true) }) - 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 "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('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) + }) }) }) }) diff --git a/webapp/components/FilterMenu/FilterMenu.vue b/webapp/components/FilterMenu/FilterMenu.vue index a2195a5fd..70dd3c236 100644 --- a/webapp/components/FilterMenu/FilterMenu.vue +++ b/webapp/components/FilterMenu/FilterMenu.vue @@ -11,7 +11,7 @@ @@ -22,24 +22,30 @@