From 4f4d72ebac15e6452cadfa6e3665df620fed9619 Mon Sep 17 00:00:00 2001 From: Sebastian <sebastian.mihalache@thinslices.com> Date: Wed, 28 Mar 2018 13:39:28 +0300 Subject: [PATCH] feat(component-invite): fix bug when inviting declining HE --- .../src/controllers/assignCollectionRole.js | 14 ++++++++---- .../src/tests/fixtures/users.js | 2 +- .../src/tests/postInvite.test.js | 22 ++++++++++++++++++- 3 files changed, 32 insertions(+), 6 deletions(-) diff --git a/packages/component-invite/src/controllers/assignCollectionRole.js b/packages/component-invite/src/controllers/assignCollectionRole.js index cd855f622..febc1a393 100644 --- a/packages/component-invite/src/controllers/assignCollectionRole.js +++ b/packages/component-invite/src/controllers/assignCollectionRole.js @@ -76,10 +76,16 @@ module.exports = async ( ) await collHelper.addAssignedPeople(collection, user, role) } else { - const matchingInvitation = inviteHelper.getMatchingInvitation( - user.invitations, - collectionId, - role, + // const matchingInvitation = inviteHelper.getMatchingInvitation( + // user.invitations, + // collectionId, + // role, + // ) + const matchingInvitation = user.invitations.find( + invitation => + invitation.collectionId === collectionId && + invitation.role === role && + invitation.hasAnswer === false, ) if (matchingInvitation === undefined) { user = await inviteHelper.setupInvitation( diff --git a/packages/component-invite/src/tests/fixtures/users.js b/packages/component-invite/src/tests/fixtures/users.js index c1542563f..b2df44368 100644 --- a/packages/component-invite/src/tests/fixtures/users.js +++ b/packages/component-invite/src/tests/fixtures/users.js @@ -111,7 +111,7 @@ const users = { }, ], teams: [heTeamID], - save: jest.fn(() => users.handlingEditor), + save: jest.fn(() => users.invitedHandlingEditor), editorInChief: false, }, } diff --git a/packages/component-invite/src/tests/postInvite.test.js b/packages/component-invite/src/tests/postInvite.test.js index 509b35539..76720c1e3 100644 --- a/packages/component-invite/src/tests/postInvite.test.js +++ b/packages/component-invite/src/tests/postInvite.test.js @@ -219,6 +219,26 @@ describe('Post invite route handler', () => { const data = JSON.parse(res._getData()) expect(data.email).toEqual(body.email) expect(data.invitations[0].collectionId).toEqual(req.params.collectionId) - expect(data.invitations).toHaveLength(1) + }) + it('should return success when the EiC invites the a HE after he declined an invitation', async () => { + const body = { + email: invitedHandlingEditor.email, + role: 'handlingEditor', + } + const req = httpMocks.createRequest({ + body, + }) + req.user = editorInChief.id + req.params.collectionId = standardCollection.id + const initialSize = invitedHandlingEditor.invitations.length + const res = httpMocks.createResponse() + await require(postInvitePath)(models)(req, res) + + expect(res.statusCode).toBe(200) + const data = JSON.parse(res._getData()) + expect(data.email).toEqual(body.email) + expect(invitedHandlingEditor.invitations.length).toBeGreaterThan( + initialSize, + ) }) }) -- GitLab