diff --git a/packages/component-fixture-manager/src/fixtures/collectionIDs.js b/packages/component-fixture-manager/src/fixtures/collectionIDs.js index 0633f816e39359721e73dd32252279f05bcdff5e..d4d27580eba01b480a3de9ec5650fc7a0dcc8b01 100644 --- a/packages/component-fixture-manager/src/fixtures/collectionIDs.js +++ b/packages/component-fixture-manager/src/fixtures/collectionIDs.js @@ -1,8 +1,8 @@ const Chance = require('chance') const chance = new Chance() -const collId = chance.guid() module.exports = { - standardCollID: collId, + standardCollID: chance.guid(), + collectionReviewCompletedID: chance.guid(), } diff --git a/packages/component-fixture-manager/src/fixtures/collections.js b/packages/component-fixture-manager/src/fixtures/collections.js index fd83ed23b1d978e33a686785f14d08b64ea8d34c..4984c9f078027f840f262f68a5fd22b914b87cbf 100644 --- a/packages/component-fixture-manager/src/fixtures/collections.js +++ b/packages/component-fixture-manager/src/fixtures/collections.js @@ -1,7 +1,10 @@ const Chance = require('chance') const { user, handlingEditor, answerHE } = require('./userData') const { fragment, reviewCompletedFragment } = require('./fragments') -const { standardCollID } = require('./collectionIDs') +const { + standardCollID, + collectionReviewCompletedID, +} = require('./collectionIDs') const chance = new Chance() const collections = { @@ -90,6 +93,7 @@ const collections = { status: 'pendingApproval', }, collectionReviewCompleted: { + id: collectionReviewCompletedID, type: 'collection', owners: [user.id], status: 'reviewCompleted', diff --git a/packages/component-fixture-manager/src/fixtures/fragments.js b/packages/component-fixture-manager/src/fixtures/fragments.js index 719d65b46ac17088cd5932d6610fda53d6cdd8ef..bbb0029e3964e8b1114926ba3995416019f144fd 100644 --- a/packages/component-fixture-manager/src/fixtures/fragments.js +++ b/packages/component-fixture-manager/src/fixtures/fragments.js @@ -8,7 +8,10 @@ const { admin, inactiveReviewer, } = require('./userData') -const { standardCollID } = require('./collectionIDs') +const { + standardCollID, + collectionReviewCompletedID, +} = require('./collectionIDs') const { user } = require('./userData') const chance = new Chance() @@ -38,7 +41,7 @@ const fragments = { }, ], id: chance.guid(), - userId: recReviewer.id, + userId: answerReviewer.id, createdOn: chance.timestamp(), updatedOn: chance.timestamp(), }, @@ -213,7 +216,7 @@ const fragments = { hasConflicts: 'no', hasDataAvailability: 'yes', }, - submitted: 1539000486993, + submitted: chance.timestamp(), invitations: [ { id: chance.guid(), @@ -246,7 +249,7 @@ const fragments = { respondedOn: chance.timestamp(), }, ], - collectionId: standardCollID, + collectionId: collectionReviewCompletedID, declarations: { agree: true, }, diff --git a/packages/component-fixture-manager/src/fixtures/teamIDs.js b/packages/component-fixture-manager/src/fixtures/teamIDs.js index 83ce3a556417bc4650efdc9ff478b8bad64a9f13..5528425bf62570b86f0c98472c1001698ab72732 100644 --- a/packages/component-fixture-manager/src/fixtures/teamIDs.js +++ b/packages/component-fixture-manager/src/fixtures/teamIDs.js @@ -1,12 +1,10 @@ const Chance = require('chance') const chance = new Chance() -const heID = chance.guid() -const revId = chance.guid() -const authorID = chance.guid() module.exports = { - heTeamID: heID, - revTeamID: revId, - authorTeamID: authorID, + heTeamID: chance.guid(), + revTeamID: chance.guid(), + authorTeamID: chance.guid(), + revRecommendationTeamID: chance.guid(), } diff --git a/packages/component-fixture-manager/src/fixtures/teams.js b/packages/component-fixture-manager/src/fixtures/teams.js index acd600dc743f9290eff5bb98920caad1f401d9c0..5191421c22e3cd9f0f4c5256c18becd8c6d89166 100644 --- a/packages/component-fixture-manager/src/fixtures/teams.js +++ b/packages/component-fixture-manager/src/fixtures/teams.js @@ -2,12 +2,23 @@ const users = require('./users') const collections = require('./collections') const fragments = require('./fragments') -const { heTeamID, revTeamID, authorTeamID } = require('./teamIDs') +const { + heTeamID, + revTeamID, + authorTeamID, + revRecommendationTeamID, +} = require('./teamIDs') const { submittingAuthor } = require('./userData') const { collection } = collections -const { fragment } = fragments -const { handlingEditor, reviewer, inactiveReviewer } = users +const { fragment, reviewCompletedFragment } = fragments +const { + handlingEditor, + reviewer, + inactiveReviewer, + answerReviewer, + recReviewer, +} = users const teams = { heTeam: { teamType: { @@ -36,11 +47,27 @@ const teams = { type: 'fragment', id: fragment.id, }, - members: [reviewer.id, inactiveReviewer.id], + members: [reviewer.id, inactiveReviewer.id, answerReviewer.id], save: jest.fn(() => teams.revTeam), updateProperties: jest.fn(() => teams.revTeam), id: revTeamID, }, + revRecommendationTeam: { + teamType: { + name: 'reviewer', + permissions: 'reviewer', + }, + group: 'reviewer', + name: 'reviewer', + object: { + type: 'fragment', + id: reviewCompletedFragment.id, + }, + members: [reviewer.id, answerReviewer.id, recReviewer.id], + save: jest.fn(() => teams.revRecommendationTeam), + updateProperties: jest.fn(() => teams.revRecommendationTeam), + id: revRecommendationTeamID, + }, authorTeam: { teamType: { name: 'author', diff --git a/packages/component-fixture-manager/src/fixtures/users.js b/packages/component-fixture-manager/src/fixtures/users.js index a315e0e1b720d98a1de3fabcb478d2f428b34ad2..e5ee9ae59e761d936dce39f1a263fa42f70dcf33 100644 --- a/packages/component-fixture-manager/src/fixtures/users.js +++ b/packages/component-fixture-manager/src/fixtures/users.js @@ -2,7 +2,12 @@ const Chance = require('chance') const usersData = require('./userData') const chance = new Chance() -const { heTeamID, revTeamID, authorTeamID } = require('./teamIDs') +const { + heTeamID, + revTeamID, + authorTeamID, + revRecommendationTeamID, +} = require('./teamIDs') const keys = Object.keys(usersData) let users = {} @@ -17,12 +22,12 @@ users = keys.reduce((obj, item) => { if (item === 'author') { teams = [authorTeamID] } - if ( - ['reviewer', 'answerReviewer', 'recReviewer', 'inactiveReviewer'].includes( - item, - ) - ) { - teams = [revTeamID] + if (['reviewer', 'inactiveReviewer', 'answerReviewer'].includes(item)) { + teams.push(revTeamID) + } + + if (['reviewer', 'answerReviewer', 'recReviewer'].includes(item)) { + teams.push(revRecommendationTeamID) } obj[item] = { diff --git a/packages/component-invite/src/tests/fragmentsInvitations/get.test.js b/packages/component-invite/src/tests/fragmentsInvitations/get.test.js index d30877398cfcf319effc69b265f9f7a7025c295e..4a33e93aae65403fb14eb6b1161c3c093f442330 100644 --- a/packages/component-invite/src/tests/fragmentsInvitations/get.test.js +++ b/packages/component-invite/src/tests/fragmentsInvitations/get.test.js @@ -44,7 +44,7 @@ describe('Get fragment invitations route handler', () => { expect(res.statusCode).toBe(200) const data = JSON.parse(res._getData()) - expect(data).toHaveLength(2) + expect(data).toHaveLength(3) }) it('should return an error when parameters are missing', async () => { const { handlingEditor } = testFixtures.users diff --git a/packages/component-invite/src/tests/fragmentsInvitations/patch.test.js b/packages/component-invite/src/tests/fragmentsInvitations/patch.test.js index 15d6f7a45edb01cde39e137b57121fd8520a5168..0342f906ad6f1ea8b52f41dbff39c7236712b82b 100644 --- a/packages/component-invite/src/tests/fragmentsInvitations/patch.test.js +++ b/packages/component-invite/src/tests/fragmentsInvitations/patch.test.js @@ -62,7 +62,7 @@ describe('Patch fragments invitations route handler', () => { await require(patchPath)(models)(req, res) expect(res.statusCode).toBe(200) - expect(reviewer.teams).toHaveLength(0) + expect(reviewer.teams).toHaveLength(1) }) it('should return an error if the collection does not exist', async () => { const { handlingEditor } = testFixtures.users diff --git a/packages/component-manuscript-manager/src/tests/collections/get.test.js b/packages/component-manuscript-manager/src/tests/collections/get.test.js index f072e2693638e8f954d1d061e446a15b7f1cd8d3..0862779b60d66f4d415632ce421f90fda6290010 100644 --- a/packages/component-manuscript-manager/src/tests/collections/get.test.js +++ b/packages/component-manuscript-manager/src/tests/collections/get.test.js @@ -44,10 +44,10 @@ describe('Get collections route handler', () => { }) it('should return collections with the latest fragments if the request user is reviewer', async () => { - const { recReviewer } = testFixtures.users + const { answerReviewer } = testFixtures.users const res = await requests.sendRequest({ - userId: recReviewer.id, + userId: answerReviewer.id, route, models, path, @@ -56,7 +56,7 @@ describe('Get collections route handler', () => { expect(res.statusCode).toBe(200) const data = JSON.parse(res._getData()) - expect(data).toHaveLength(1) + expect(data).toHaveLength(2) expect(data[0].type).toEqual('collection') expect(data[0].currentVersion.recommendations).toHaveLength(1) expect(data[0].currentVersion.authors[0]).not.toHaveProperty('email') diff --git a/packages/component-manuscript-manager/src/tests/fragmentsRecommendations/patch.test.js b/packages/component-manuscript-manager/src/tests/fragmentsRecommendations/patch.test.js index d67ae0ea44921e1a0781968f53949dcd67c7df98..05c6e8271c46b85a5f1278df341304cc4f4b49f1 100644 --- a/packages/component-manuscript-manager/src/tests/fragmentsRecommendations/patch.test.js +++ b/packages/component-manuscript-manager/src/tests/fragmentsRecommendations/patch.test.js @@ -45,13 +45,13 @@ describe('Patch fragments recommendations route handler', () => { models = Model.build(testFixtures) }) it('should return success when the parameters are correct', async () => { - const { recReviewer } = testFixtures.users + const { answerReviewer } = testFixtures.users const { collection } = testFixtures.collections const { fragment } = testFixtures.fragments const recommendation = fragment.recommendations[0] const res = await requests.sendRequest({ body, - userId: recReviewer.id, + userId: answerReviewer.id, models, route, path, @@ -64,7 +64,7 @@ describe('Patch fragments recommendations route handler', () => { expect(res.statusCode).toBe(200) const data = JSON.parse(res._getData()) - expect(data.userId).toEqual(recReviewer.id) + expect(data.userId).toEqual(answerReviewer.id) }) it('should return an error when the fragmentId does not match the collectionId', async () => { const { reviewer } = testFixtures.users