Merge pull request #6693 from overleaf/jpa-error-is-manager

[web] refactor error handling for rejected manager removal

GitOrigin-RevId: 48be3bf254de74c2799d1368aee329fd9038dfa6
This commit is contained in:
Timothée Alby
2022-02-16 11:34:25 +00:00
committed by Copybot
parent 62b662f07a
commit c0fae79ad7
5 changed files with 21 additions and 5 deletions
@@ -21,6 +21,9 @@ const MockRequest = require('../helpers/MockRequest')
const MockResponse = require('../helpers/MockResponse')
const EntityConfigs = require('../../../../app/src/Features/UserMembership/UserMembershipEntityConfigs')
const Errors = require('../../../../app/src/Features/Errors/Errors')
const {
UserIsManagerError,
} = require('../../../../app/src/Features/UserMembership/UserMembershipErrors')
describe('UserMembershipController', function () {
beforeEach(function () {
@@ -71,6 +74,7 @@ describe('UserMembershipController', function () {
modulePath,
{
requires: {
'./UserMembershipErrors': { UserIsManagerError },
'../Authentication/SessionManager': this.SessionManager,
'./UserMembershipHandler': this.UserMembershipHandler,
},
@@ -263,7 +267,7 @@ describe('UserMembershipController', function () {
})
it('prevent admin removal', function (done) {
this.UserMembershipHandler.removeUser.yields({ isAdmin: true })
this.UserMembershipHandler.removeUser.yields(new UserIsManagerError())
return this.UserMembershipController.remove(this.req, {
status: () => ({
json: payload => {
@@ -21,6 +21,9 @@ const modulePath =
const SandboxedModule = require('sandboxed-module')
const Errors = require('../../../../app/src/Features/Errors/Errors')
const EntityConfigs = require('../../../../app/src/Features/UserMembership/UserMembershipEntityConfigs')
const {
UserIsManagerError,
} = require('../../../../app/src/Features/UserMembership/UserMembershipErrors')
describe('UserMembershipHandler', function () {
beforeEach(function () {
@@ -68,6 +71,7 @@ describe('UserMembershipHandler', function () {
return (this.UserMembershipHandler = SandboxedModule.require(modulePath, {
requires: {
mongodb: { ObjectId },
'./UserMembershipErrors': { UserIsManagerError },
'./UserMembershipViewModel': this.UserMembershipViewModel,
'../User/UserGetter': this.UserGetter,
'../../models/Institution': {
@@ -265,7 +269,7 @@ describe('UserMembershipHandler', function () {
this.newUser._id,
(error, user) => {
expect(error).to.exist
expect(error.isAdmin).to.equal(true)
expect(error).to.be.instanceof(UserIsManagerError)
return done()
}
)