Skip to content

Commit ca2f4be

Browse files
authored
Merge pull request #30 from narekcat/issue-3764
Fix issue 3764
2 parents 84fe9db + a046f00 commit ca2f4be

File tree

2 files changed

+28
-8
lines changed

2 files changed

+28
-8
lines changed

src/services/ProcessorServiceProjectMemberInvite.js

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -57,8 +57,10 @@ create.schema = {
5757
const updateInvitesPromise = message => async (doc) => {
5858
// now merge the updated changes and re-index the document
5959
const invites = _.isArray(doc._source.invites) ? doc._source.invites : []
60-
_.remove(invites, invite => (!!message.email && invite.email === message.email) ||
61-
(!!message.userId && invite.userId === message.userId))
60+
const removedInvites = _.remove(invites, invite => message.id === invite.id)
61+
if (!removedInvites.length) {
62+
throw new Error(`Invite with id "${message.id}" is not found and not removed.`)
63+
}
6264
return _.assign(doc._source, { invites })
6365
}
6466

test/e2e/processor.project.index.test.js

Lines changed: 24 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -887,9 +887,18 @@ describe('TC Project Member Invite Topic Tests', () => {
887887
it('update project member invite message - not found', async () => {
888888
const message = _.cloneDeep(projectMemberInviteUpdatedMessage)
889889
message.payload.id = notFoundId
890-
await ProcessorService.update(message)
891-
const data = await testHelper.getProjectESData(projectId)
892-
expect(_.find(data.invites, { id: notFoundId })).to.be.an('undefined')
890+
try {
891+
await ProcessorService.create(projectMemberInviteCreatedMessage)
892+
await ProcessorService.update(message)
893+
} catch (err) {
894+
logger.logFullError(err)
895+
expect(err).to.exist // eslint-disable-line
896+
expect(err.name).to.equal('Error')
897+
const msg = 'not found and not removed.'
898+
expect(err.message.indexOf(msg) >= 0).to.equal(true)
899+
return
900+
}
901+
throw new Error('There should be not found error.')
893902
})
894903

895904
it('delete project member invite message', async () => {
@@ -905,9 +914,18 @@ describe('TC Project Member Invite Topic Tests', () => {
905914
it('delete project member invite message - not found', async () => {
906915
const message = _.cloneDeep(projectMemberInviteDeletedMessage)
907916
message.payload.id = notFoundId
908-
await ProcessorService.deleteMessage(message)
909-
const data = await testHelper.getProjectESData(projectId)
910-
expect(_.find(data.invites, { id: notFoundId })).to.be.an('undefined')
917+
try {
918+
await ProcessorService.create(projectMemberInviteCreatedMessage)
919+
await ProcessorService.deleteMessage(message)
920+
} catch (err) {
921+
logger.logFullError(err)
922+
expect(err).to.exist // eslint-disable-line
923+
expect(err.name).to.equal('Error')
924+
const msg = 'not found and not removed.'
925+
expect(err.message.indexOf(msg) >= 0).to.equal(true)
926+
return
927+
}
928+
throw new Error('There should be not found error.')
911929
})
912930

913931
it('test logger', async () => {

0 commit comments

Comments
 (0)