| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960 |
- const chai = require('chai')
- const SandboxedModule = require('sandboxed-module')
- const { expect } = chai
- const modulePath = '../../../../app/src/Features/Helpers/AuthorizationHelper'
- describe('AuthorizationHelper', function() {
- beforeEach(function() {
- this.AuthorizationHelper = SandboxedModule.require(modulePath, {
- globals: {
- console: console
- },
- requires: {
- '../../models/User': {
- UserSchema: {
- obj: {
- staffAccess: {
- publisherMetrics: {},
- publisherManagement: {},
- institutionMetrics: {},
- institutionManagement: {},
- groupMetrics: {},
- groupManagement: {},
- adminMetrics: {}
- }
- }
- }
- }
- }
- })
- })
- describe('hasAnyStaffAccess', function() {
- it('with empty user', function() {
- const user = {}
- expect(this.AuthorizationHelper.hasAnyStaffAccess(user)).to.be.false
- })
- it('with no access user', function() {
- const user = { isAdmin: false, staffAccess: { adminMetrics: false } }
- expect(this.AuthorizationHelper.hasAnyStaffAccess(user)).to.be.false
- })
- it('with admin user', function() {
- const user = { isAdmin: true }
- expect(this.AuthorizationHelper.hasAnyStaffAccess(user)).to.be.true
- })
- it('with staff user', function() {
- const user = { staffAccess: { adminMetrics: true, somethingElse: false } }
- expect(this.AuthorizationHelper.hasAnyStaffAccess(user)).to.be.true
- })
- it('with non-staff user with extra attributes', function() {
- // make sure that staffAccess attributes not declared on the model don't
- // give user access
- const user = { staffAccess: { adminMetrics: false, somethingElse: true } }
- expect(this.AuthorizationHelper.hasAnyStaffAccess(user)).to.be.false
- })
- })
- })
|