From 148c65123637959e82aef3eca1d92f1f038816d6 Mon Sep 17 00:00:00 2001
From: Tania Fecheta <tania.fecheta@thinslices.com>
Date: Tue, 18 Dec 2018 11:31:24 +0200
Subject: [PATCH] test(isAdmin): added unit tests for isAdmin function

---
 .../src/services/User.js                      |  2 +-
 .../src/tests/collection.test.js              | 24 ++++++++++++++++++-
 .../src/routes/collections/delete.js          |  2 +-
 .../fragments/notifications/notifications.js  |  4 +---
 4 files changed, 26 insertions(+), 6 deletions(-)

diff --git a/packages/component-helper-service/src/services/User.js b/packages/component-helper-service/src/services/User.js
index 821528b42..718566655 100644
--- a/packages/component-helper-service/src/services/User.js
+++ b/packages/component-helper-service/src/services/User.js
@@ -64,7 +64,7 @@ class User {
     return eics
   }
 
-  async userIsAdmin(user) {
+  async isAdmin(user) {
     const { UserModel } = this
     const users = await UserModel.all()
     const admin = users.filter(user => user.admin)
diff --git a/packages/component-helper-service/src/tests/collection.test.js b/packages/component-helper-service/src/tests/collection.test.js
index 167153af8..1cda1f6e6 100644
--- a/packages/component-helper-service/src/tests/collection.test.js
+++ b/packages/component-helper-service/src/tests/collection.test.js
@@ -5,7 +5,7 @@ const { cloneDeep } = require('lodash')
 const fixturesService = require('pubsweet-component-fixture-service')
 
 const { fixtures, Model } = fixturesService
-const { Collection, Fragment } = require('../Helper')
+const { Collection, Fragment, User } = require('../Helper')
 
 describe('Collection helper', () => {
   let testFixtures = {}
@@ -231,4 +231,26 @@ describe('Collection helper', () => {
       expect(canHEMakeRecommendation).toBe(false)
     })
   })
+
+  describe('isAdmin', () => {
+    it('should return true if user is admin', async () => {
+      const { admin } = testFixtures.users
+      const adminId = admin.id
+      const UserModel = models.User
+      const userHelper = new User({ UserModel })
+      const isAdmin = await userHelper.isAdmin(adminId)
+
+      expect(isAdmin).toBe(true)
+    })
+
+    it('should return false if user is not admin', async () => {
+      const { reviewer } = testFixtures.users
+      const reviewerId = reviewer.id
+      const UserModel = models.User
+      const userHelper = new User({ UserModel })
+      const isAdmin = await userHelper.isAdmin(reviewerId)
+
+      expect(isAdmin).toBe(false)
+    })
+  })
 })
diff --git a/packages/component-manuscript-manager/src/routes/collections/delete.js b/packages/component-manuscript-manager/src/routes/collections/delete.js
index 62ed1fc8c..c5c7ba449 100644
--- a/packages/component-manuscript-manager/src/routes/collections/delete.js
+++ b/packages/component-manuscript-manager/src/routes/collections/delete.js
@@ -62,7 +62,7 @@ module.exports = models => async (req, res) => {
       fragment.files.manuscripts,
       fragment.files.coverLetter,
       fragment.files.supplementary,
-      fragmentId,
+      { id: fragmentId },
     )
 
     fileKeys = fileKeys.map(file => file.id)
diff --git a/packages/component-manuscript-manager/src/routes/fragments/notifications/notifications.js b/packages/component-manuscript-manager/src/routes/fragments/notifications/notifications.js
index e37133b84..3fa3d5df6 100644
--- a/packages/component-manuscript-manager/src/routes/fragments/notifications/notifications.js
+++ b/packages/component-manuscript-manager/src/routes/fragments/notifications/notifications.js
@@ -57,9 +57,7 @@ module.exports = {
     const fragmentHelper = new Fragment({ fragment })
     const collectionOwners = get(collection, 'owners')
     const userHelper = new User({ UserModel })
-    const adminOwner = collectionOwners.find(owner =>
-      userHelper.userIsAdmin(owner),
-    )
+    const adminOwner = collectionOwners.find(owner => userHelper.isAdmin(owner))
     const handlingEditor = get(collection, 'handlingEditor')
     const parsedFragment = await fragmentHelper.getFragmentData({
       handlingEditor,
-- 
GitLab