From c94273cef8548ca52f7c4e463b5999af2b83f54e Mon Sep 17 00:00:00 2001 From: Andrei Cioromila <andrei.cioromila@thinslices.com> Date: Wed, 10 Oct 2018 16:27:41 +0300 Subject: [PATCH] test(fixtures): Properly link fixtures so all tests pass --- .../src/fixtures/collectionIDs.js | 4 +-- .../src/fixtures/collections.js | 6 +++- .../src/fixtures/fragments.js | 11 +++--- .../src/fixtures/teamIDs.js | 10 +++--- .../src/fixtures/teams.js | 35 ++++++++++++++++--- .../src/fixtures/users.js | 19 ++++++---- .../tests/fragmentsInvitations/get.test.js | 2 +- .../tests/fragmentsInvitations/patch.test.js | 2 +- .../src/tests/collections/get.test.js | 6 ++-- .../fragmentsRecommendations/patch.test.js | 6 ++-- 10 files changed, 69 insertions(+), 32 deletions(-) diff --git a/packages/component-fixture-manager/src/fixtures/collectionIDs.js b/packages/component-fixture-manager/src/fixtures/collectionIDs.js index 0633f816e..d4d27580e 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 fd83ed23b..4984c9f07 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 719d65b46..bbb0029e3 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 83ce3a556..5528425bf 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 acd600dc7..5191421c2 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 a315e0e1b..e5ee9ae59 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 d30877398..4a33e93aa 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 15d6f7a45..0342f906a 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 f072e2693..0862779b6 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 d67ae0ea4..05c6e8271 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 -- GitLab