@@ -15,6 +15,7 @@ const superUser = userData[4];
15
15
const searchParamValues = require ( "../fixtures/user/search" ) ( ) ;
16
16
17
17
const config = require ( "config" ) ;
18
+ const discordDeveloperRoleId = config . get ( "discordDeveloperRoleId" ) ;
18
19
const { getDiscordMembers } = require ( "../fixtures/discordResponse/discord-response" ) ;
19
20
const joinData = require ( "../fixtures/user/join" ) ;
20
21
const {
@@ -65,6 +66,20 @@ describe("Users", function () {
65
66
} ) ;
66
67
67
68
describe ( "PATCH /users/self" , function ( ) {
69
+ beforeEach ( function ( ) {
70
+ fetchStub = Sinon . stub ( global , "fetch" ) ;
71
+ fetchStub . returns (
72
+ Promise . resolve ( {
73
+ status : 200 ,
74
+ json : ( ) => Promise . resolve ( getDiscordMembers ) ,
75
+ } )
76
+ ) ;
77
+ } ) ;
78
+
79
+ afterEach ( function ( ) {
80
+ Sinon . restore ( ) ;
81
+ } ) ;
82
+
68
83
it ( "Should update the user" , function ( done ) {
69
84
chai
70
85
. request ( app )
@@ -2168,4 +2183,114 @@ describe("Users", function () {
2168
2183
} ) ;
2169
2184
} ) ;
2170
2185
} ) ;
2186
+
2187
+ describe ( "GET /users/isDeveloper for developers not in_discord" , function ( ) {
2188
+ beforeEach ( function ( ) {
2189
+ fetchStub = Sinon . stub ( global , "fetch" ) ;
2190
+ fetchStub . returns (
2191
+ Promise . resolve ( {
2192
+ status : 200 ,
2193
+ json : ( ) => Promise . resolve ( getDiscordMembers ) ,
2194
+ } )
2195
+ ) ;
2196
+ } ) ;
2197
+
2198
+ afterEach ( function ( ) {
2199
+ Sinon . restore ( ) ;
2200
+ } ) ;
2201
+
2202
+ it ( "Should return false if user is a developer and not in discord" , function ( done ) {
2203
+ chai
2204
+ . request ( app )
2205
+ . get ( "/users/isDeveloper" )
2206
+ . set ( "cookie" , `${ cookieName } =${ jwt } ` )
2207
+ . end ( ( err , res ) => {
2208
+ if ( err ) {
2209
+ return done ( err ) ;
2210
+ }
2211
+
2212
+ expect ( res ) . to . have . status ( 200 ) ;
2213
+ expect ( res . body . developerRoleExistsOnUser ) . to . equal ( false ) ;
2214
+
2215
+ return done ( ) ;
2216
+ } ) ;
2217
+ } ) ;
2218
+ } ) ;
2219
+
2220
+ describe ( "PATCH /users/self for developers" , function ( ) {
2221
+ beforeEach ( function ( ) {
2222
+ fetchStub = Sinon . stub ( global , "fetch" ) ;
2223
+ const discordMembers = [ ...getDiscordMembers ] ;
2224
+ discordMembers [ 0 ] . user . id = "12345" ;
2225
+ discordMembers [ 0 ] . roles . push ( discordDeveloperRoleId ) ;
2226
+ fetchStub . returns (
2227
+ Promise . resolve ( {
2228
+ status : 200 ,
2229
+ json : ( ) => Promise . resolve ( discordMembers ) ,
2230
+ } )
2231
+ ) ;
2232
+ } ) ;
2233
+
2234
+ afterEach ( function ( ) {
2235
+ Sinon . restore ( ) ;
2236
+ } ) ;
2237
+
2238
+ it ( "Should not update the user if user is a developer" , function ( done ) {
2239
+ chai
2240
+ . request ( app )
2241
+ . patch ( "/users/self" )
2242
+ . set ( "cookie" , `${ cookieName } =${ jwt } ` )
2243
+ . send ( {
2244
+ first_name : "Test first_name" ,
2245
+ } )
2246
+ . end ( ( err , res ) => {
2247
+ if ( err ) {
2248
+ return done ( err ) ;
2249
+ }
2250
+
2251
+ expect ( res ) . to . have . status ( 403 ) ;
2252
+ expect ( res . body . message ) . to . equal (
2253
+ "Developers can't update their profile data. Use profile service for updating."
2254
+ ) ;
2255
+
2256
+ return done ( ) ;
2257
+ } ) ;
2258
+ } ) ;
2259
+ } ) ;
2260
+
2261
+ describe ( "GET /users/isDeveloper for developers" , function ( ) {
2262
+ beforeEach ( function ( ) {
2263
+ fetchStub = Sinon . stub ( global , "fetch" ) ;
2264
+ const discordMembers = [ ...getDiscordMembers ] ;
2265
+ discordMembers [ 0 ] . user . id = "12345" ;
2266
+ discordMembers [ 0 ] . roles . push ( discordDeveloperRoleId ) ;
2267
+ fetchStub . returns (
2268
+ Promise . resolve ( {
2269
+ status : 200 ,
2270
+ json : ( ) => Promise . resolve ( discordMembers ) ,
2271
+ } )
2272
+ ) ;
2273
+ } ) ;
2274
+
2275
+ afterEach ( function ( ) {
2276
+ Sinon . restore ( ) ;
2277
+ } ) ;
2278
+
2279
+ it ( "Should return true if user is a developer" , function ( done ) {
2280
+ chai
2281
+ . request ( app )
2282
+ . get ( "/users/isDeveloper" )
2283
+ . set ( "cookie" , `${ cookieName } =${ jwt } ` )
2284
+ . end ( ( err , res ) => {
2285
+ if ( err ) {
2286
+ return done ( err ) ;
2287
+ }
2288
+
2289
+ expect ( res ) . to . have . status ( 200 ) ;
2290
+ expect ( res . body . developerRoleExistsOnUser ) . to . equal ( true ) ;
2291
+
2292
+ return done ( ) ;
2293
+ } ) ;
2294
+ } ) ;
2295
+ } ) ;
2171
2296
} ) ;
0 commit comments