@@ -81,7 +81,7 @@ defmodule CadetWeb.AdminCoursesControllerTest do
8181 end
8282
8383 @ tag authenticate: :student
84- test "rejects forbidden request for non-staff users " , % { conn: conn } do
84+ test "rejects forbidden request for students " , % { conn: conn } do
8585 course_id = conn . assigns [ :course_id ]
8686 old_course = Repo . get ( Course , course_id )
8787
@@ -98,6 +98,23 @@ defmodule CadetWeb.AdminCoursesControllerTest do
9898 end
9999
100100 @ tag authenticate: :staff
101+ test "rejects forbidden request for non-admin staff" , % { conn: conn } do
102+ course_id = conn . assigns [ :course_id ]
103+ old_course = Repo . get ( Course , course_id )
104+
105+ conn =
106+ put ( conn , build_url_course_config ( course_id ) , % {
107+ "sourceChapter" => 3 ,
108+ "sourceVariant" => "concurrent"
109+ } )
110+
111+ same_course = Repo . get ( Course , course_id )
112+
113+ assert response ( conn , 403 ) == "Forbidden"
114+ assert old_course == same_course
115+ end
116+
117+ @ tag authenticate: :admin
101118 test "rejects requests if user does not belong to the specified course" , % { conn: conn } do
102119 course_id = conn . assigns [ :course_id ]
103120
@@ -110,7 +127,7 @@ defmodule CadetWeb.AdminCoursesControllerTest do
110127 assert response ( conn , 403 ) == "Forbidden"
111128 end
112129
113- @ tag authenticate: :staff
130+ @ tag authenticate: :admin
114131 test "rejects requests with invalid params" , % { conn: conn } do
115132 course_id = conn . assigns [ :course_id ]
116133
@@ -123,7 +140,7 @@ defmodule CadetWeb.AdminCoursesControllerTest do
123140 assert response ( conn , 400 ) == "Invalid parameter(s)"
124141 end
125142
126- @ tag authenticate: :staff
143+ @ tag authenticate: :admin
127144 test "rejects requests with missing params" , % { conn: conn } do
128145 course_id = conn . assigns [ :course_id ]
129146
@@ -145,7 +162,7 @@ defmodule CadetWeb.AdminCoursesControllerTest do
145162
146163 describe "GET /v2/courses/{course_id}/admin/configs/assessment_configs" do
147164 @ tag authenticate: :admin
148- test "succeeds" , % { conn: conn } do
165+ test "succeeds for admins " , % { conn: conn } do
149166 course_id = conn . assigns [ :course_id ]
150167 course = Repo . get ( Course , course_id )
151168 config1 = insert ( :assessment_config , % { order: 1 , type: "Mission1" , course: course } )
@@ -206,8 +223,17 @@ defmodule CadetWeb.AdminCoursesControllerTest do
206223 assert expected == resp
207224 end
208225
226+ @ tag authenticate: :staff
227+ test "rejects forbidden request for non-admin staff" , % { conn: conn } do
228+ course_id = conn . assigns [ :course_id ]
229+
230+ resp = get ( conn , build_url_assessment_configs ( course_id ) )
231+
232+ assert response ( resp , 403 ) == "Forbidden"
233+ end
234+
209235 @ tag authenticate: :student
210- test "rejects forbidden request for non-staff users " , % { conn: conn } do
236+ test "rejects forbidden request for students " , % { conn: conn } do
211237 course_id = conn . assigns [ :course_id ]
212238
213239 resp = get ( conn , build_url_assessment_configs ( course_id ) )
@@ -257,8 +283,20 @@ defmodule CadetWeb.AdminCoursesControllerTest do
257283 assert new_configs == [ "Missions" , "Paths" ]
258284 end
259285
286+ @ tag authenticate: :staff
287+ test "rejects forbidden request for non-admin staff" , % { conn: conn } do
288+ course_id = conn . assigns [ :course_id ]
289+
290+ conn =
291+ put ( conn , build_url_assessment_configs ( course_id ) , % {
292+ "assessmentConfigs" => [ ]
293+ } )
294+
295+ assert response ( conn , 403 ) == "Forbidden"
296+ end
297+
260298 @ tag authenticate: :student
261- test "rejects forbidden request for non-staff users " , % { conn: conn } do
299+ test "rejects forbidden request for students " , % { conn: conn } do
262300 course_id = conn . assigns [ :course_id ]
263301
264302 conn =
@@ -269,7 +307,7 @@ defmodule CadetWeb.AdminCoursesControllerTest do
269307 assert response ( conn , 403 ) == "Forbidden"
270308 end
271309
272- @ tag authenticate: :staff
310+ @ tag authenticate: :admin
273311 test "rejects request if user is not in specified course" , % { conn: conn } do
274312 course_id = conn . assigns [ :course_id ]
275313
@@ -281,7 +319,7 @@ defmodule CadetWeb.AdminCoursesControllerTest do
281319 assert response ( conn , 403 ) == "Forbidden"
282320 end
283321
284- @ tag authenticate: :staff
322+ @ tag authenticate: :admin
285323 test "rejects requests with invalid params 1" , % { conn: conn } do
286324 course_id = conn . assigns [ :course_id ]
287325
@@ -293,7 +331,7 @@ defmodule CadetWeb.AdminCoursesControllerTest do
293331 assert response ( conn , 400 ) == "missing assessmentConfig"
294332 end
295333
296- @ tag authenticate: :staff
334+ @ tag authenticate: :admin
297335 test "rejects requests with invalid params 2" , % { conn: conn } do
298336 course_id = conn . assigns [ :course_id ]
299337
@@ -306,7 +344,7 @@ defmodule CadetWeb.AdminCoursesControllerTest do
306344 "assessmentConfigs should be a list of assessment configuration objects"
307345 end
308346
309- @ tag authenticate: :staff
347+ @ tag authenticate: :admin
310348 test "rejects requests with invalid params: more than 8" , % { conn: conn } do
311349 course_id = conn . assigns [ :course_id ]
312350
@@ -318,7 +356,7 @@ defmodule CadetWeb.AdminCoursesControllerTest do
318356 assert response ( conn , 400 ) == "Invalid parameter(s)"
319357 end
320358
321- @ tag authenticate: :staff
359+ @ tag authenticate: :admin
322360 test "rejects requests with missing params" , % { conn: conn } do
323361 course_id = conn . assigns [ :course_id ]
324362
@@ -350,16 +388,25 @@ defmodule CadetWeb.AdminCoursesControllerTest do
350388 assert new_configs == [ "Paths" ]
351389 end
352390
391+ @ tag authenticate: :staff
392+ test "rejects forbidden request for non-admin staff" , % { conn: conn } do
393+ course_id = conn . assigns [ :course_id ]
394+
395+ conn = delete ( conn , build_url_assessment_config ( course_id , 1 ) )
396+
397+ assert response ( conn , 403 ) == "Forbidden"
398+ end
399+
353400 @ tag authenticate: :student
354- test "rejects forbidden request for non-staff users " , % { conn: conn } do
401+ test "rejects forbidden request for students " , % { conn: conn } do
355402 course_id = conn . assigns [ :course_id ]
356403
357404 conn = delete ( conn , build_url_assessment_config ( course_id , 1 ) )
358405
359406 assert response ( conn , 403 ) == "Forbidden"
360407 end
361408
362- @ tag authenticate: :staff
409+ @ tag authenticate: :admin
363410 test "rejects request if user is not in specified course" , % { conn: conn } do
364411 course_id = conn . assigns [ :course_id ]
365412
@@ -368,7 +415,7 @@ defmodule CadetWeb.AdminCoursesControllerTest do
368415 assert response ( conn , 403 ) == "Forbidden"
369416 end
370417
371- @ tag authenticate: :staff
418+ @ tag authenticate: :admin
372419 test "fails if config does not exist" , % { conn: conn } do
373420 course_id = conn . assigns [ :course_id ]
374421
0 commit comments