From 75a0d2ac273c57097f93727d506dcc36b2d0762b Mon Sep 17 00:00:00 2001 From: Tania Fecheta <tania.fecheta@thinslices.com> Date: Fri, 9 Nov 2018 10:24:30 +0200 Subject: [PATCH] fix(fragmentsRecommendations): reviewers cannot write a review on an older version --- .../routes/fragmentsRecommendations/post.js | 9 ++++++++ .../fragmentsRecommendations/post.test.js | 23 +++++++++++++++++++ 2 files changed, 32 insertions(+) diff --git a/packages/component-manuscript-manager/src/routes/fragmentsRecommendations/post.js b/packages/component-manuscript-manager/src/routes/fragmentsRecommendations/post.js index 43206e0e1..c0301c0d5 100644 --- a/packages/component-manuscript-manager/src/routes/fragmentsRecommendations/post.js +++ b/packages/component-manuscript-manager/src/routes/fragmentsRecommendations/post.js @@ -78,6 +78,15 @@ module.exports = models => async (req, res) => { .json({ error: 'Cannot make a recommendation on an older version.' }) } + if ( + recommendationType === recommendations.type.review && + last(collection.fragments) !== fragmentId + ) { + return res + .status(400) + .json({ error: 'Cannot write a review on an older version.' }) + } + if ( recommendation === recommendations.publish && recommendationType === recommendations.type.editor && diff --git a/packages/component-manuscript-manager/src/tests/fragmentsRecommendations/post.test.js b/packages/component-manuscript-manager/src/tests/fragmentsRecommendations/post.test.js index 867d1ed0d..05ae4193c 100644 --- a/packages/component-manuscript-manager/src/tests/fragmentsRecommendations/post.test.js +++ b/packages/component-manuscript-manager/src/tests/fragmentsRecommendations/post.test.js @@ -384,6 +384,29 @@ describe('Post fragments recommendations route handler', () => { 'Cannot make a recommendation on an older version.', ) }) + it('should return an error when a reviewer writes a review on an older version of a manuscript', async () => { + const { reviewer } = testFixtures.users + const { twoVersionsCollection } = testFixtures.collections + const { fragment } = testFixtures.fragments + body.recommendationType = 'review' + + const res = await requests.sendRequest({ + body, + userId: reviewer.id, + models, + route, + path, + params: { + collectionId: twoVersionsCollection.id, + fragmentId: fragment.id, + }, + }) + + expect(res.statusCode).toBe(400) + const data = JSON.parse(res._getData()) + + expect(data.error).toEqual('Cannot write a review on an older version.') + }) it('should return an error when an EiC makes a decision on an older version of a manuscript', async () => { const { editorInChief } = testFixtures.users -- GitLab