process.env.NODE_TLS_REJECT_UNAUTHORIZED = '0' process.env.SUPPRESS_NO_CONFIG_WARNING = true const { cloneDeep } = require('lodash') const fixturesService = require('pubsweet-component-fixture-service') const { fixtures } = fixturesService const { Collection } = require('../Helper') describe('Collection helper', () => { let testFixtures = {} beforeEach(() => { testFixtures = cloneDeep(fixtures) }) describe('getReviewerNumber', () => { it('should assign reviewer number 1 on invitation if no other reviewer numbers exist', async () => { const { collection } = testFixtures.collections const { reviewer } = testFixtures.users const collectionHelper = new Collection({ collection }) const reviewerNumber = await collectionHelper.getReviewerNumber({ userId: reviewer.id, }) expect(reviewerNumber).toBe(1) }) it('should assign next reviewer number on invitation if another reviewer numbers exist', async () => { const { collectionReviewCompleted } = testFixtures.collections const { reviewer } = testFixtures.users const collectionHelper = new Collection({ collection: collectionReviewCompleted, }) const reviewerNumber = await collectionHelper.getReviewerNumber({ userId: reviewer.id, }) expect(reviewerNumber).toBe(3) }) it('should keep reviewer number across fragment versions', async () => { const { oneReviewedFragmentCollection } = testFixtures.collections const { answerReviewer } = testFixtures.users const collectionHelper = new Collection({ collection: oneReviewedFragmentCollection, }) const reviewerNumber = await collectionHelper.getReviewerNumber({ userId: answerReviewer.id, }) expect(reviewerNumber).toBe(2) }) it('should assign next reviewer number across fragment versions', async () => { const { oneReviewedFragmentCollection } = testFixtures.collections const { reviewer } = testFixtures.users const collectionHelper = new Collection({ collection: oneReviewedFragmentCollection, }) const reviewerNumber = await collectionHelper.getReviewerNumber({ userId: reviewer.id, }) expect(reviewerNumber).toBe(3) }) }) })