@@ -3,7 +3,7 @@ import { membershipController } from '../../../../../src/team/application/member
3
3
import { teamRoutes } from '../../../../../src/team/application/routes.js' ;
4
4
import { expect , HttpTestServer , sinon } from '../../../../test-helper.js' ;
5
5
6
- describe ( 'Unit | Team | Application | Route | Membership' , function ( ) {
6
+ describe ( 'Unit | Team | Application | Admin | Route | Membership' , function ( ) {
7
7
describe ( 'POST /api/admin/memberships' , function ( ) {
8
8
it ( 'returns forbidden access if admin member has CERTIF role' , async function ( ) {
9
9
// given
@@ -70,4 +70,49 @@ describe('Unit | Team | Application | Route | Membership', function () {
70
70
expect ( response . statusCode ) . to . equal ( 403 ) ;
71
71
} ) ;
72
72
} ) ;
73
+
74
+ describe ( 'POST /api/admin/memberships/{id}/disable' , function ( ) {
75
+ it ( 'returns 204 if user is Pix Admin' , async function ( ) {
76
+ // given
77
+ sinon . stub ( securityPreHandlers , 'hasAtLeastOneAccessOf' ) . returns ( ( ) => true ) ;
78
+ sinon . stub ( membershipController , 'disable' ) . callsFake ( ( request , h ) => h . response ( ) . code ( 204 ) ) ;
79
+
80
+ const httpTestServer = new HttpTestServer ( ) ;
81
+ await httpTestServer . register ( teamRoutes ) ;
82
+ const membershipId = 123 ;
83
+
84
+ // when
85
+ const response = await httpTestServer . request ( 'POST' , `/api/admin/memberships/${ membershipId } /disable` ) ;
86
+
87
+ // then
88
+ expect ( response . statusCode ) . to . equal ( 204 ) ;
89
+ expect ( membershipController . disable ) . to . have . been . called ;
90
+ } ) ;
91
+
92
+ it ( 'returns forbidden access if admin member has CERTIF role' , async function ( ) {
93
+ // given
94
+ sinon . stub ( membershipController , 'disable' ) ;
95
+
96
+ sinon . stub ( securityPreHandlers , 'checkAdminMemberHasRoleCertif' ) . callsFake ( ( request , h ) => h . response ( true ) ) ;
97
+ sinon
98
+ . stub ( securityPreHandlers , 'checkAdminMemberHasRoleSuperAdmin' )
99
+ . callsFake ( ( request , h ) => h . response ( { errors : new Error ( 'forbidden' ) } ) . code ( 403 ) ) ;
100
+ sinon
101
+ . stub ( securityPreHandlers , 'checkAdminMemberHasRoleSupport' )
102
+ . callsFake ( ( request , h ) => h . response ( { errors : new Error ( 'forbidden' ) } ) . code ( 403 ) ) ;
103
+ sinon
104
+ . stub ( securityPreHandlers , 'checkAdminMemberHasRoleMetier' )
105
+ . callsFake ( ( request , h ) => h . response ( { errors : new Error ( 'forbidden' ) } ) . code ( 403 ) ) ;
106
+
107
+ const httpTestServer = new HttpTestServer ( ) ;
108
+ await httpTestServer . register ( teamRoutes ) ;
109
+
110
+ // when
111
+ const response = await httpTestServer . request ( 'POST' , '/api/admin/memberships/1/disable' ) ;
112
+
113
+ // then
114
+ expect ( response . statusCode ) . to . equal ( 403 ) ;
115
+ expect ( membershipController . disable ) . to . have . not . been . called ;
116
+ } ) ;
117
+ } ) ;
73
118
} ) ;
0 commit comments