From 29dc56c12ff9193d3dbb1becbc1668884afe2b67 Mon Sep 17 00:00:00 2001 From: kartik adur Date: Tue, 28 Nov 2017 07:24:13 +0530 Subject: [PATCH] Party roster sorter: Member Modal Component (#9472) * modify sort options for party members * add unittest for membersModalComponent sort * updates as requested in PR * removed duplicates for `class` and `background` from flavour text * fix linting error thrown by travis ci --- .../specs/components/groups/membersModal.js | 31 +++++ .../client/components/groups/membersModal.vue | 112 +++++++++++++----- website/common/locales/en/groups.json | 21 ++-- 3 files changed, 125 insertions(+), 39 deletions(-) create mode 100644 test/client/unit/specs/components/groups/membersModal.js diff --git a/test/client/unit/specs/components/groups/membersModal.js b/test/client/unit/specs/components/groups/membersModal.js new file mode 100644 index 0000000000..79d57e70a3 --- /dev/null +++ b/test/client/unit/specs/components/groups/membersModal.js @@ -0,0 +1,31 @@ +import Vue from 'vue'; +import MembersModalComponent from 'client/components/groups/membersModal.vue'; + +describe('Members Modal Component', () => { + describe('Party Sort', () => { + let CTor; + let vm; + + beforeEach(() => { + CTor = Vue.extend(MembersModalComponent); + vm = new CTor().$mount(); + }); + + afterEach(() => { + vm.$destroy(); + }); + + it('should have an empty object as sort-option at start', () => { + const defaultData = vm.data(); + expect(defaultData.sortOption).to.eq({}); + }); + + it('should accept sort-option object', () => { + const sortOption = vm.data().sortOption[0]; + vm.sort(sortOption); + Vue.nextTick(() => { + expect(vm.data().sortOption).to.eq(sortOption); + }); + }); + }); +}); diff --git a/website/client/components/groups/membersModal.vue b/website/client/components/groups/membersModal.vue index c713bcc968..7f4baf9737 100644 --- a/website/client/components/groups/membersModal.vue +++ b/website/client/components/groups/membersModal.vue @@ -16,7 +16,7 @@ div .col-5.offset-1 span.dropdown-label {{ $t('sortBy') }} b-dropdown(:text="$t('sort')", right=true) - b-dropdown-item(v-for='sortOption in sortOptions', @click='sort(sortOption.value)', :key='sortOption.value') {{sortOption.text}} + b-dropdown-item(v-for='sortOption in sortOptions', @click='sort(sortOption)', :key='sortOption.value') {{sortOption.text}} .row(v-if='invites.length > 0') .col-6.offset-3.nav .nav-item(@click='viewMembers()', :class="{active: selectedPage === 'members'}") {{ $t('members') }} @@ -172,7 +172,9 @@ div