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