From ee9597242726cedb40e64c54f92610502ad78bdc Mon Sep 17 00:00:00 2001
From: Bogdan Cochior <bogdan.cochior@thinslices.com>
Date: Fri, 29 Jun 2018 14:36:36 +0300
Subject: [PATCH] refactor(authsome): use roro instead of multiple params

---
 .../xpub-faraday/config/authsome-helpers.js   |  6 ++---
 packages/xpub-faraday/config/authsome-mode.js |  7 ++++-
 .../tests/authsome-helpers.test.js            | 26 +++++++++----------
 3 files changed, 22 insertions(+), 17 deletions(-)

diff --git a/packages/xpub-faraday/config/authsome-helpers.js b/packages/xpub-faraday/config/authsome-helpers.js
index 7305d983f..b4d065ef7 100644
--- a/packages/xpub-faraday/config/authsome-helpers.js
+++ b/packages/xpub-faraday/config/authsome-helpers.js
@@ -155,12 +155,12 @@ const stripeCollectionByRole = (coll = {}, role = '') => {
   return coll
 }
 
-const stripeFragmentByRole = (
+const stripeFragmentByRole = ({
   fragment = {},
   role = '',
-  status = '',
+  status = 'draft',
   user = {},
-) => {
+}) => {
   const { recommendations, files, authors } = fragment
   switch (role) {
     case 'author':
diff --git a/packages/xpub-faraday/config/authsome-mode.js b/packages/xpub-faraday/config/authsome-mode.js
index df82c56c6..0579681c2 100644
--- a/packages/xpub-faraday/config/authsome-mode.js
+++ b/packages/xpub-faraday/config/authsome-mode.js
@@ -137,7 +137,12 @@ async function applyAuthenticatedUserPolicy(user, operation, object, context) {
 
       return {
         filter: fragment =>
-          helpers.stripeFragmentByRole(fragment, permission.role, status, user),
+          helpers.stripeFragmentByRole({
+            fragment,
+            role: permission.role,
+            status,
+            user,
+          }),
       }
     }
 
diff --git a/packages/xpub-faraday/tests/authsome-helpers.test.js b/packages/xpub-faraday/tests/authsome-helpers.test.js
index 3d0e28fc6..97d6798bb 100644
--- a/packages/xpub-faraday/tests/authsome-helpers.test.js
+++ b/packages/xpub-faraday/tests/authsome-helpers.test.js
@@ -14,7 +14,7 @@ describe('Authsome Helpers', () => {
   })
   it('stripeFragment - should return fragment', () => {
     const { fragment } = testFixtures.fragments
-    const result = ah.stripeFragmentByRole(fragment)
+    const result = ah.stripeFragmentByRole({ fragment })
     expect(result).toBeTruthy()
   })
 
@@ -88,13 +88,13 @@ describe('Authsome Helpers', () => {
 
   it('stripeFragment - reviewer should not see authors email', () => {
     const { fragment } = testFixtures.fragments
-    const result = ah.stripeFragmentByRole(fragment, 'reviewer')
+    const result = ah.stripeFragmentByRole({ fragment, role: 'reviewer' })
     const { authors = [] } = result
     expect(authors[0].email).toBeFalsy()
   })
   it('stripeFragment - other roles than reviewer should see authors emails', () => {
     const { fragment } = testFixtures.fragments
-    const result = ah.stripeFragmentByRole(fragment, 'author')
+    const result = ah.stripeFragmentByRole({ fragment, role: 'author' })
     const { authors = [] } = result
 
     expect(authors[0].email).toBeTruthy()
@@ -102,13 +102,13 @@ describe('Authsome Helpers', () => {
 
   it('stripeFragment - reviewer should not see cover letter', () => {
     const { fragment } = testFixtures.fragments
-    const result = ah.stripeFragmentByRole(fragment, 'reviewer')
+    const result = ah.stripeFragmentByRole({ fragment, role: 'reviewer' })
     const { files = {} } = result
     expect(files.coverLetter).toBeFalsy()
   })
   it('stripeFragment - reviewer should not see others reviews', () => {
     const { fragment } = testFixtures.fragments
-    const result = ah.stripeFragmentByRole(fragment, 'reviewer')
+    const result = ah.stripeFragmentByRole({ fragment, role: 'reviewer' })
     const { recommendations } = result
     expect(recommendations).toEqual([])
   })
@@ -129,11 +129,11 @@ describe('Authsome Helpers', () => {
         ],
       },
     ]
-    const { recommendations } = ah.stripeFragmentByRole(
+    const { recommendations } = ah.stripeFragmentByRole({
       fragment,
-      'author',
-      'underReview',
-    )
+      role: 'author',
+      status: 'underReview',
+    })
     expect(recommendations).toHaveLength(0)
   })
   it('stripeFragment - author should see reviews only if recommendation has been made', () => {
@@ -152,11 +152,11 @@ describe('Authsome Helpers', () => {
         ],
       },
     ]
-    const result = ah.stripeFragmentByRole(
+    const result = ah.stripeFragmentByRole({
       fragment,
-      'author',
-      'revisionRequested',
-    )
+      role: 'author',
+      status: 'revisionRequested',
+    })
     const privateComments = get(result, 'recommendations[0].comments')
     expect(privateComments).toHaveLength(1)
   })
-- 
GitLab