From 662e642729566b2788f4431372b1b196b414a38d Mon Sep 17 00:00:00 2001 From: Sabe Jones Date: Wed, 14 Nov 2018 07:43:08 -0600 Subject: [PATCH] fix(tests): linting & more expects Also one more tweak for invite validation responsiveness --- .../GET-challenges_challengeId.test.js | 10 +++---- ...GET-challenges_challengeId_members.test.js | 6 ++-- ...enges_challengeId_members_memberId.test.js | 2 +- .../GET-challenges_group_groupid.test.js | 28 +++++++++---------- .../challenges/GET-challenges_user.test.js | 10 +++---- .../POST-challenges_challengeId_join.test.js | 2 +- .../PUT-challenges_challengeId.test.js | 2 +- .../groups/GET-groups_groupId_invites.test.js | 2 +- .../groups/GET-groups_groupId_members.test.js | 4 +-- .../client/components/groups/inviteModal.vue | 11 +++++--- 10 files changed, 40 insertions(+), 37 deletions(-) diff --git a/test/api/v3/integration/challenges/GET-challenges_challengeId.test.js b/test/api/v3/integration/challenges/GET-challenges_challengeId.test.js index 6fd12c110b..2f3e219592 100644 --- a/test/api/v3/integration/challenges/GET-challenges_challengeId.test.js +++ b/test/api/v3/integration/challenges/GET-challenges_challengeId.test.js @@ -50,7 +50,7 @@ describe('GET /challenges/:challengeId', () => { auth: { local: { username: groupLeader.auth.local.username, - } + }, }, flags: { verifiedUsername: true, @@ -116,7 +116,7 @@ describe('GET /challenges/:challengeId', () => { auth: { local: { username: challengeLeader.auth.local.username, - } + }, }, flags: { verifiedUsername: true, @@ -150,7 +150,7 @@ describe('GET /challenges/:challengeId', () => { auth: { local: { username: challengeLeader.auth.local.username, - } + }, }, flags: { verifiedUsername: true, @@ -206,7 +206,7 @@ describe('GET /challenges/:challengeId', () => { auth: { local: { username: challengeLeader.auth.local.username, - } + }, }, flags: { verifiedUsername: true, @@ -240,7 +240,7 @@ describe('GET /challenges/:challengeId', () => { auth: { local: { username: challengeLeader.auth.local.username, - } + }, }, flags: { verifiedUsername: true, diff --git a/test/api/v3/integration/challenges/GET-challenges_challengeId_members.test.js b/test/api/v3/integration/challenges/GET-challenges_challengeId_members.test.js index 2cc7aab5a3..97ed8236fc 100644 --- a/test/api/v3/integration/challenges/GET-challenges_challengeId_members.test.js +++ b/test/api/v3/integration/challenges/GET-challenges_challengeId_members.test.js @@ -63,7 +63,7 @@ describe('GET /challenges/:challengeId/members', () => { auth: { local: { username: groupLeader.auth.local.username, - } + }, }, flags: { verifiedUsername: true, @@ -84,7 +84,7 @@ describe('GET /challenges/:challengeId/members', () => { auth: { local: { username: leader.auth.local.username, - } + }, }, flags: { verifiedUsername: true, @@ -107,7 +107,7 @@ describe('GET /challenges/:challengeId/members', () => { auth: { local: { username: anotherUser.auth.local.username, - } + }, }, flags: { verifiedUsername: true, diff --git a/test/api/v3/integration/challenges/GET-challenges_challengeId_members_memberId.test.js b/test/api/v3/integration/challenges/GET-challenges_challengeId_members_memberId.test.js index 47a7adbf39..eef16de7e1 100644 --- a/test/api/v3/integration/challenges/GET-challenges_challengeId_members_memberId.test.js +++ b/test/api/v3/integration/challenges/GET-challenges_challengeId_members_memberId.test.js @@ -81,7 +81,7 @@ describe('GET /challenges/:challengeId/members/:memberId', () => { await groupLeader.post(`/tasks/challenge/${challenge._id}`, [{type: 'habit', text: taskText}]); let memberProgress = await user.get(`/challenges/${challenge._id}/members/${groupLeader._id}`); - expect(memberProgress).to.have.all.keys(['_id', 'id', 'profile', 'tasks']); + expect(memberProgress).to.have.all.keys(['_id', 'auth', 'flags', 'id', 'profile', 'tasks']); expect(memberProgress.profile).to.have.all.keys(['name']); expect(memberProgress.tasks.length).to.equal(1); }); diff --git a/test/api/v3/integration/challenges/GET-challenges_group_groupid.test.js b/test/api/v3/integration/challenges/GET-challenges_group_groupid.test.js index beb3b8a541..9fc903c925 100644 --- a/test/api/v3/integration/challenges/GET-challenges_group_groupid.test.js +++ b/test/api/v3/integration/challenges/GET-challenges_group_groupid.test.js @@ -42,7 +42,7 @@ describe('GET challenges/groups/:groupId', () => { auth: { local: { username: user.auth.local.username, - } + }, }, flags: { verifiedUsername: true, @@ -57,7 +57,7 @@ describe('GET challenges/groups/:groupId', () => { auth: { local: { username: user.auth.local.username, - } + }, }, flags: { verifiedUsername: true, @@ -77,7 +77,7 @@ describe('GET challenges/groups/:groupId', () => { auth: { local: { username: user.auth.local.username, - } + }, }, flags: { verifiedUsername: true, @@ -92,7 +92,7 @@ describe('GET challenges/groups/:groupId', () => { auth: { local: { username: user.auth.local.username, - } + }, }, flags: { verifiedUsername: true, @@ -160,7 +160,7 @@ describe('GET challenges/groups/:groupId', () => { auth: { local: { username: user.auth.local.username, - } + }, }, flags: { verifiedUsername: true, @@ -175,7 +175,7 @@ describe('GET challenges/groups/:groupId', () => { auth: { local: { username: user.auth.local.username, - } + }, }, flags: { verifiedUsername: true, @@ -286,7 +286,7 @@ describe('GET challenges/groups/:groupId', () => { auth: { local: { username: user.auth.local.username, - } + }, }, flags: { verifiedUsername: true, @@ -301,7 +301,7 @@ describe('GET challenges/groups/:groupId', () => { auth: { local: { username: user.auth.local.username, - } + }, }, flags: { verifiedUsername: true, @@ -321,7 +321,7 @@ describe('GET challenges/groups/:groupId', () => { auth: { local: { username: user.auth.local.username, - } + }, }, flags: { verifiedUsername: true, @@ -336,7 +336,7 @@ describe('GET challenges/groups/:groupId', () => { auth: { local: { username: user.auth.local.username, - } + }, }, flags: { verifiedUsername: true, @@ -371,7 +371,7 @@ describe('GET challenges/groups/:groupId', () => { auth: { local: { username: user.auth.local.username, - } + }, }, flags: { verifiedUsername: true, @@ -386,7 +386,7 @@ describe('GET challenges/groups/:groupId', () => { auth: { local: { username: user.auth.local.username, - } + }, }, flags: { verifiedUsername: true, @@ -406,7 +406,7 @@ describe('GET challenges/groups/:groupId', () => { auth: { local: { username: user.auth.local.username, - } + }, }, flags: { verifiedUsername: true, @@ -421,7 +421,7 @@ describe('GET challenges/groups/:groupId', () => { auth: { local: { username: user.auth.local.username, - } + }, }, flags: { verifiedUsername: true, diff --git a/test/api/v3/integration/challenges/GET-challenges_user.test.js b/test/api/v3/integration/challenges/GET-challenges_user.test.js index 7f3cdbd55c..9aa06541de 100644 --- a/test/api/v3/integration/challenges/GET-challenges_user.test.js +++ b/test/api/v3/integration/challenges/GET-challenges_user.test.js @@ -43,7 +43,7 @@ describe('GET challenges/user', () => { auth: { local: { username: user.auth.local.username, - } + }, }, flags: { verifiedUsername: true, @@ -73,7 +73,7 @@ describe('GET challenges/user', () => { auth: { local: { username: user.auth.local.username, - } + }, }, flags: { verifiedUsername: true, @@ -98,7 +98,7 @@ describe('GET challenges/user', () => { auth: { local: { username: user.auth.local.username, - } + }, }, flags: { verifiedUsername: true, @@ -128,7 +128,7 @@ describe('GET challenges/user', () => { auth: { local: { username: user.auth.local.username, - } + }, }, flags: { verifiedUsername: true, @@ -153,7 +153,7 @@ describe('GET challenges/user', () => { auth: { local: { username: user.auth.local.username, - } + }, }, flags: { verifiedUsername: true, diff --git a/test/api/v3/integration/challenges/POST-challenges_challengeId_join.test.js b/test/api/v3/integration/challenges/POST-challenges_challengeId_join.test.js index 188bde9f23..8385d63e36 100644 --- a/test/api/v3/integration/challenges/POST-challenges_challengeId_join.test.js +++ b/test/api/v3/integration/challenges/POST-challenges_challengeId_join.test.js @@ -82,7 +82,7 @@ describe('POST /challenges/:challengeId/join', () => { auth: { local: { username: groupLeader.auth.local.username, - } + }, }, flags: { verifiedUsername: true, diff --git a/test/api/v3/integration/challenges/PUT-challenges_challengeId.test.js b/test/api/v3/integration/challenges/PUT-challenges_challengeId.test.js index 88a78697c2..4e6f4dad7c 100644 --- a/test/api/v3/integration/challenges/PUT-challenges_challengeId.test.js +++ b/test/api/v3/integration/challenges/PUT-challenges_challengeId.test.js @@ -82,7 +82,7 @@ describe('PUT /challenges/:challengeId', () => { auth: { local: { username: member.auth.local.username, - } + }, }, flags: { verifiedUsername: true, diff --git a/test/api/v3/integration/groups/GET-groups_groupId_invites.test.js b/test/api/v3/integration/groups/GET-groups_groupId_invites.test.js index 00111d1ba8..832efe66e9 100644 --- a/test/api/v3/integration/groups/GET-groups_groupId_invites.test.js +++ b/test/api/v3/integration/groups/GET-groups_groupId_invites.test.js @@ -53,7 +53,7 @@ describe('GET /groups/:groupId/invites', () => { auth: { local: { username: invited.auth.local.username, - } + }, }, flags: { verifiedUsername: true, diff --git a/test/api/v3/integration/groups/GET-groups_groupId_members.test.js b/test/api/v3/integration/groups/GET-groups_groupId_members.test.js index 71cfb0b4e1..603b2f64b1 100644 --- a/test/api/v3/integration/groups/GET-groups_groupId_members.test.js +++ b/test/api/v3/integration/groups/GET-groups_groupId_members.test.js @@ -59,7 +59,7 @@ describe('GET /groups/:groupId/members', () => { auth: { local: { username: user.auth.local.username, - } + }, }, flags: { verifiedUsername: true, @@ -145,7 +145,7 @@ describe('GET /groups/:groupId/members', () => { let res = await user.get('/groups/party/members?includeAllMembers=true'); expect(res.length).to.equal(30); res.forEach(member => { - expect(member).to.have.all.keys(['_id', 'id', 'profile']); + expect(member).to.have.all.keys(['_id', 'auth', 'flags', 'id', 'profile']); expect(member.profile).to.have.all.keys(['name']); }); }); diff --git a/website/client/components/groups/inviteModal.vue b/website/client/components/groups/inviteModal.vue index 8b7b002a6d..a1e8a312eb 100644 --- a/website/client/components/groups/inviteModal.vue +++ b/website/client/components/groups/inviteModal.vue @@ -11,7 +11,8 @@ type='text', :placeholder='$t("emailOrUsernameInvite")', v-model='invite.text', - v-on:keyup='checkInviteList', + v-on:keyup='expandInviteList', + v-on:change='checkInviteList', :class='{"input-valid": invite.valid, "is-invalid input-invalid": invite.valid === false}', ) .input-error.text-center.mt-2(v-if="invite.error") {{ invite.error }} @@ -124,11 +125,10 @@ }, methods: { checkInviteList: debounce(function checkList () { - this.invites = filter(this.invites, (invite) => { - return invite.text.length > 0; + this.invites = filter(this.invites, (invite, index) => { + return invite.text.length > 0 || index === this.invites.length - 1; }); while (this.invites.length < 2) this.invites.push(clone(INVITE_DEFAULTS)); - if (this.invites[this.invites.length - 1].text.length > 0) this.invites.push(clone(INVITE_DEFAULTS)); forEach(this.invites, (value, index) => { if (value.text.length < 1 || isEmail(value.text)) { return this.fillErrors(index); @@ -148,6 +148,9 @@ } }); }, 250), + expandInviteList () { + if (this.invites[this.invites.length - 1].text.length > 0) this.invites.push(clone(INVITE_DEFAULTS)); + }, fillErrors (index, res) { if (!res || res.status === 200) { this.invites[index].error = null;