@@ -10,27 +10,52 @@ const server = require('../server')
1010// eslint-disable-next-line no-unused-vars
1111const should = chai . should ( )
1212const loginDetails = {
13- email : 'admin@admin.com' ,
14- password : '12345'
13+ admin : {
14+ id : '5aa1c2c35ef7a4e97b5e995a' ,
15+ email : 'admin@admin.com' ,
16+ password : '12345'
17+ } ,
18+ user : {
19+ id : '5aa1c2c35ef7a4e97b5e995b' ,
20+ email : 'user@user.com' ,
21+ password : '12345'
22+ }
1523}
16- let token = ''
24+ const tokens = {
25+ admin : '' ,
26+ user : ''
27+ }
28+
1729const email = faker . internet . email ( )
1830const createdID = [ ]
1931
2032chai . use ( chaiHttp )
2133
2234describe ( '*********** USERS ***********' , ( ) => {
2335 describe ( '/POST login' , ( ) => {
24- it ( 'it should GET token' , done => {
36+ it ( 'it should GET token as admin' , done => {
37+ chai
38+ . request ( server )
39+ . post ( '/login' )
40+ . send ( loginDetails . admin )
41+ . end ( ( err , res ) => {
42+ res . should . have . status ( 200 )
43+ res . body . should . be . an ( 'object' )
44+ res . body . should . have . property ( 'token' )
45+ tokens . admin = res . body . token
46+ done ( )
47+ } )
48+ } )
49+ it ( 'it should GET token as user' , done => {
2550 chai
2651 . request ( server )
2752 . post ( '/login' )
28- . send ( loginDetails )
53+ . send ( loginDetails . user )
2954 . end ( ( err , res ) => {
3055 res . should . have . status ( 200 )
3156 res . body . should . be . an ( 'object' )
3257 res . body . should . have . property ( 'token' )
33- token = res . body . token
58+ tokens . user = res . body . token
3459 done ( )
3560 } )
3661 } )
@@ -49,7 +74,7 @@ describe('*********** USERS ***********', () => {
4974 chai
5075 . request ( server )
5176 . get ( '/users' )
52- . set ( 'Authorization' , `Bearer ${ token } ` )
77+ . set ( 'Authorization' , `Bearer ${ tokens . admin } ` )
5378 . end ( ( err , res ) => {
5479 res . should . have . status ( 200 )
5580 res . body . should . be . an ( 'object' )
@@ -61,7 +86,7 @@ describe('*********** USERS ***********', () => {
6186 chai
6287 . request ( server )
6388 . get ( '/users?filter=admin&fields=name,email,city,country,phone' )
64- . set ( 'Authorization' , `Bearer ${ token } ` )
89+ . set ( 'Authorization' , `Bearer ${ tokens . admin } ` )
6590 . end ( ( err , res ) => {
6691 res . should . have . status ( 200 )
6792 res . body . should . be . an ( 'object' )
@@ -78,7 +103,7 @@ describe('*********** USERS ***********', () => {
78103 chai
79104 . request ( server )
80105 . post ( '/users' )
81- . set ( 'Authorization' , `Bearer ${ token } ` )
106+ . set ( 'Authorization' , `Bearer ${ tokens . admin } ` )
82107 . send ( user )
83108 . end ( ( err , res ) => {
84109 res . should . have . status ( 422 )
@@ -102,7 +127,7 @@ describe('*********** USERS ***********', () => {
102127 chai
103128 . request ( server )
104129 . post ( '/users' )
105- . set ( 'Authorization' , `Bearer ${ token } ` )
130+ . set ( 'Authorization' , `Bearer ${ tokens . admin } ` )
106131 . send ( user )
107132 . end ( ( err , res ) => {
108133 res . should . have . status ( 201 )
@@ -122,7 +147,7 @@ describe('*********** USERS ***********', () => {
122147 chai
123148 . request ( server )
124149 . post ( '/users' )
125- . set ( 'Authorization' , `Bearer ${ token } ` )
150+ . set ( 'Authorization' , `Bearer ${ tokens . admin } ` )
126151 . send ( user )
127152 . end ( ( err , res ) => {
128153 res . should . have . status ( 422 )
@@ -141,7 +166,7 @@ describe('*********** USERS ***********', () => {
141166 chai
142167 . request ( server )
143168 . post ( '/users' )
144- . set ( 'Authorization' , `Bearer ${ token } ` )
169+ . set ( 'Authorization' , `Bearer ${ tokens . admin } ` )
145170 . send ( user )
146171 . end ( ( err , res ) => {
147172 res . should . have . status ( 422 )
@@ -157,7 +182,7 @@ describe('*********** USERS ***********', () => {
157182 chai
158183 . request ( server )
159184 . get ( `/users/${ id } ` )
160- . set ( 'Authorization' , `Bearer ${ token } ` )
185+ . set ( 'Authorization' , `Bearer ${ tokens . admin } ` )
161186 . end ( ( error , res ) => {
162187 res . should . have . status ( 200 )
163188 res . body . should . be . a ( 'object' )
@@ -183,7 +208,7 @@ describe('*********** USERS ***********', () => {
183208 chai
184209 . request ( server )
185210 . patch ( `/users/${ id } ` )
186- . set ( 'Authorization' , `Bearer ${ token } ` )
211+ . set ( 'Authorization' , `Bearer ${ tokens . admin } ` )
187212 . send ( user )
188213 . end ( ( error , res ) => {
189214 res . should . have . status ( 200 )
@@ -207,7 +232,7 @@ describe('*********** USERS ***********', () => {
207232 chai
208233 . request ( server )
209234 . patch ( `/users/${ id } ` )
210- . set ( 'Authorization' , `Bearer ${ token } ` )
235+ . set ( 'Authorization' , `Bearer ${ tokens . admin } ` )
211236 . send ( user )
212237 . end ( ( err , res ) => {
213238 res . should . have . status ( 422 )
@@ -216,6 +241,25 @@ describe('*********** USERS ***********', () => {
216241 done ( )
217242 } )
218243 } )
244+ it ( 'it should NOT UPDATE another user if not an admin' , done => {
245+ const id = createdID . slice ( - 1 ) . pop ( )
246+ const user = {
247+ name : faker . random . words ( ) ,
248+ email : 'toto@toto.com' ,
249+ role : 'user'
250+ }
251+ chai
252+ . request ( server )
253+ . patch ( `/users/${ id } ` )
254+ . set ( 'Authorization' , `Bearer ${ tokens . user } ` )
255+ . send ( user )
256+ . end ( ( err , res ) => {
257+ res . should . have . status ( 401 )
258+ res . body . should . be . a ( 'object' )
259+ res . body . should . have . property ( 'errors' )
260+ done ( )
261+ } )
262+ } )
219263 } )
220264 describe ( '/DELETE/:id user' , ( ) => {
221265 it ( 'it should DELETE a user given the id' , done => {
@@ -233,7 +277,7 @@ describe('*********** USERS ***********', () => {
233277 chai
234278 . request ( server )
235279 . post ( '/users' )
236- . set ( 'Authorization' , `Bearer ${ token } ` )
280+ . set ( 'Authorization' , `Bearer ${ tokens . admin } ` )
237281 . send ( user )
238282 . end ( ( err , res ) => {
239283 res . should . have . status ( 201 )
@@ -242,7 +286,7 @@ describe('*********** USERS ***********', () => {
242286 chai
243287 . request ( server )
244288 . delete ( `/users/${ res . body . _id } ` )
245- . set ( 'Authorization' , `Bearer ${ token } ` )
289+ . set ( 'Authorization' , `Bearer ${ tokens . admin } ` )
246290 . end ( ( error , result ) => {
247291 result . should . have . status ( 200 )
248292 result . body . should . be . a ( 'object' )
0 commit comments