diff --git a/packages/component-invite/config/default.js b/packages/component-invite/config/default.js
index 82c160f4b764977fa2baa4c19875e29ba3e56f6b..27fee757472f0eb6c28960974e260631de59a933 100644
--- a/packages/component-invite/config/default.js
+++ b/packages/component-invite/config/default.js
@@ -9,7 +9,7 @@ module.exports = {
   },
   roles: {
     global: ['admin', 'editorInChief', 'author', 'handlingEditor'],
-    collection: ['handlingEditor', 'reviewer'],
+    collection: ['handlingEditor', 'reviewer', 'author'],
     inviteRights: {
       admin: ['admin', 'editorInChief', 'author'],
       editorInChief: ['handlingEditor'],
diff --git a/packages/component-invite/src/tests/collectionsInvitations/decline.test.js b/packages/component-invite/src/tests/collectionsInvitations/decline.test.js
index f6669635c403147d6cfbc21c8183b49d529838ea..2d99412824cda19609aa57e0ab969cf4ce7fa9c5 100644
--- a/packages/component-invite/src/tests/collectionsInvitations/decline.test.js
+++ b/packages/component-invite/src/tests/collectionsInvitations/decline.test.js
@@ -26,7 +26,6 @@ describe('Patch collections invitations route handler', () => {
   it('should return success when the reviewer declines work on a collection', async () => {
     const { reviewer } = testFixtures.users
     const { collection } = testFixtures.collections
-    body.isAccepted = false
     const req = httpMocks.createRequest({
       body,
     })
@@ -38,17 +37,16 @@ describe('Patch collections invitations route handler', () => {
     req.params.invitationId = inv.id
     const res = httpMocks.createResponse()
     await require(patchPath)(models)(req, res)
-
     expect(res.statusCode).toBe(200)
   })
   it('should return an error params are missing', async () => {
-    const { handlingEditor } = testFixtures.users
+    const { reviewer } = testFixtures.users
     const { collection } = testFixtures.collections
-    delete body.isAccepted
+    delete body.invitationToken
     const req = httpMocks.createRequest({
       body,
     })
-    req.user = handlingEditor.id
+    req.user = reviewer.id
     req.params.collectionId = collection.id
     req.params.invitationId = collection.invitations[0].id
     const res = httpMocks.createResponse()
@@ -56,21 +54,21 @@ describe('Patch collections invitations route handler', () => {
 
     expect(res.statusCode).toBe(400)
     const data = JSON.parse(res._getData())
-    expect(data.error).toEqual('Missing parameters')
+    expect(data.error).toEqual('Token is required')
   })
   it('should return an error if the collection does not exists', async () => {
-    const { handlingEditor } = testFixtures.users
+    const { reviewer } = testFixtures.users
     const req = httpMocks.createRequest({
       body,
     })
-    req.user = handlingEditor.id
+    req.user = reviewer.id
     req.params.collectionId = 'invalid-id'
     const res = httpMocks.createResponse()
     await require(patchPath)(models)(req, res)
 
     expect(res.statusCode).toBe(404)
     const data = JSON.parse(res._getData())
-    expect(data.error).toEqual('collection not found')
+    expect(data.error).toEqual('item not found')
   })
   it('should return an error when the invitation does not exist', async () => {
     const { user } = testFixtures.users
@@ -88,33 +86,32 @@ describe('Patch collections invitations route handler', () => {
     const data = JSON.parse(res._getData())
     expect(data.error).toEqual('Invitation invalid-id not found')
   })
-  it("should return an error when a user tries to patch another user's invitation", async () => {
+  it('should return an error when the token is invalid', async () => {
     const { reviewer } = testFixtures.users
     const { collection } = testFixtures.collections
+    body.invitationToken = 'invalid-token'
     const req = httpMocks.createRequest({
       body,
     })
     req.user = reviewer.id
     req.params.collectionId = collection.id
     const inv = collection.invitations.find(
-      inv => inv.role === 'handlingEditor' && inv.hasAnswer === false,
+      inv => inv.role === 'reviewer' && inv.hasAnswer === false,
     )
     req.params.invitationId = inv.id
     const res = httpMocks.createResponse()
     await require(patchPath)(models)(req, res)
-    expect(res.statusCode).toBe(403)
+    expect(res.statusCode).toBe(404)
     const data = JSON.parse(res._getData())
-    expect(data.error).toEqual(
-      `User ${reviewer.email} is not allowed to modify invitation ${inv.id}`,
-    )
+    expect(data.error).toEqual('item not found')
   })
   it('should return an error when the invitation is already answered', async () => {
-    const { handlingEditor } = testFixtures.users
+    const { reviewer } = testFixtures.users
     const { collection } = testFixtures.collections
     const req = httpMocks.createRequest({
       body,
     })
-    req.user = handlingEditor.id
+    req.user = reviewer.id
     req.params.collectionId = collection.id
     const inv = collection.invitations.find(inv => inv.hasAnswer)
     req.params.invitationId = inv.id
diff --git a/packages/component-invite/src/tests/helpers/Model.js b/packages/component-invite/src/tests/helpers/Model.js
index 7337e1aa65d689787330b3996571b22c5c39504c..df543155a679c4c7e2bb91a8304835c458e38d44 100644
--- a/packages/component-invite/src/tests/helpers/Model.js
+++ b/packages/component-invite/src/tests/helpers/Model.js
@@ -21,6 +21,9 @@ const build = fixtures => {
   UserMock.find = jest.fn(id => findMock(id, 'users', fixtures))
   UserMock.findByEmail = jest.fn(email => findByEmailMock(email, fixtures))
   UserMock.all = jest.fn(() => Object.values(fixtures.users))
+  UserMock.findOneByField = jest.fn((field, value) =>
+    findOneByFieldMock(field, value, 'users', fixtures),
+  )
   TeamMock.find = jest.fn(id => findMock(id, 'teams', fixtures))
   TeamMock.updateProperties = jest.fn(team =>
     updatePropertiesMock(team, 'teams', fixtures),
@@ -58,4 +61,12 @@ const updatePropertiesMock = (obj, type, fixtures) => {
   if (foundObj === undefined) return Promise.reject(notFoundError)
   return Promise.resolve(foundObj)
 }
+
+const findOneByFieldMock = (field, value, type, fixtures) => {
+  const foundObj = Object.values(fixtures[type]).find(
+    fixtureObj => fixtureObj[field] === value,
+  )
+  if (foundObj === undefined) return Promise.reject(notFoundError)
+  return Promise.resolve(foundObj)
+}
 module.exports = { build }