@@ -4,12 +4,12 @@ const app = require('../app')
4
4
const testutil = require ( '../../test/util' )
5
5
const { requestAsUser } = require ( '../../test/util' )
6
6
7
- beforeAll ( async ( ) => {
7
+ beforeEach ( async ( ) => {
8
8
await testutil . setupTestDb ( )
9
9
await testutil . populateTestDb ( )
10
10
} )
11
11
12
- afterAll ( async ( ) => {
12
+ afterEach ( async ( ) => {
13
13
await testutil . destroyTestDb ( )
14
14
} )
15
15
@@ -61,6 +61,55 @@ describe('Users API', () => {
61
61
} )
62
62
} )
63
63
64
+ describe ( 'PUT /api/users/admins/:userId' , ( ) => {
65
+ test ( 'succeeds for existing admin' , async ( ) => {
66
+ const request = await requestAsUser ( app , 'dev' )
67
+ // make "225staff" an admin
68
+ const res = await request . put ( '/api/users/admins/3' )
69
+ expect ( res . statusCode ) . toBe ( 201 )
70
+ expect ( res . body . isAdmin ) . toBe ( true )
71
+ } )
72
+
73
+ test ( 'fails for non-admin' , async ( ) => {
74
+ const request = await requestAsUser ( app , '241staff' )
75
+ const res = await request . put ( '/api/users/admins/3' )
76
+ expect ( res . statusCode ) . toBe ( 403 )
77
+ } )
78
+
79
+ test ( 'fails for student' , async ( ) => {
80
+ const request = await requestAsUser ( app , 'student' )
81
+ const res = await request . put ( '/api/users/admins/3' )
82
+ expect ( res . statusCode ) . toBe ( 403 )
83
+ } )
84
+ } )
85
+
86
+ describe ( 'DELETE /api/users/admins/:userId' , ( ) => {
87
+ test ( 'succeeds for existing admin' , async ( ) => {
88
+ const request = await requestAsUser ( app , 'dev' )
89
+ // make "admin" not an admin
90
+ const res = await request . delete ( '/api/users/admins/2' )
91
+ expect ( res . statusCode ) . toBe ( 204 )
92
+ } )
93
+
94
+ test ( 'fails for self' , async ( ) => {
95
+ const request = await requestAsUser ( app , 'dev' )
96
+ const res = await request . delete ( '/api/users/admins/1' )
97
+ expect ( res . statusCode ) . toBe ( 403 )
98
+ } )
99
+
100
+ test ( 'fails for non-admin' , async ( ) => {
101
+ const request = await requestAsUser ( app , '241staff' )
102
+ const res = await request . delete ( '/api/users/admins/2' )
103
+ expect ( res . statusCode ) . toBe ( 403 )
104
+ } )
105
+
106
+ test ( 'fails for student' , async ( ) => {
107
+ const request = await requestAsUser ( app , 'student' )
108
+ const res = await request . delete ( '/api/users/admins/2' )
109
+ expect ( res . statusCode ) . toBe ( 403 )
110
+ } )
111
+ } )
112
+
64
113
describe ( 'GET /api/users' , ( ) => {
65
114
test ( 'returns all users for admin' , async ( ) => {
66
115
const request = await requestAsUser ( app , 'admin' )
0 commit comments