@@ -30,6 +30,7 @@ defmodule CadetWeb.AssessmentsControllerTest do
30
30
AssessmentsController . swagger_definitions ( )
31
31
AssessmentsController . swagger_path_index ( nil )
32
32
AssessmentsController . swagger_path_show ( nil )
33
+ AssessmentsController . swagger_path_unlock ( nil )
33
34
AssessmentsController . swagger_path_submit ( nil )
34
35
end
35
36
@@ -40,9 +41,9 @@ defmodule CadetWeb.AssessmentsControllerTest do
40
41
end
41
42
end
42
43
43
- describe "POST /:assessment_id, unauthenticated" do
44
+ describe "GET /:assessment_id, unauthenticated" do
44
45
test "unauthorized" , % { conn: conn } do
45
- conn = post ( conn , build_url ( 1 ) )
46
+ conn = get ( conn , build_url ( 1 ) )
46
47
assert response ( conn , 401 ) =~ "Unauthorised"
47
48
end
48
49
end
@@ -290,7 +291,7 @@ defmodule CadetWeb.AssessmentsControllerTest do
290
291
end
291
292
end
292
293
293
- describe "POST /assessment_id, all roles" do
294
+ describe "GET /assessment_id, all roles" do
294
295
test "it renders assessment details" , % {
295
296
conn: conn ,
296
297
users: users ,
@@ -314,7 +315,7 @@ defmodule CadetWeb.AssessmentsControllerTest do
314
315
resp_assessments =
315
316
conn
316
317
|> sign_in ( user )
317
- |> post ( build_url ( assessment . id ) )
318
+ |> get ( build_url ( assessment . id ) )
318
319
|> json_response ( 200 )
319
320
|> Map . delete ( "questions" )
320
321
@@ -403,7 +404,7 @@ defmodule CadetWeb.AssessmentsControllerTest do
403
404
resp_questions =
404
405
conn
405
406
|> sign_in ( user )
406
- |> post ( build_url ( assessment . id ) )
407
+ |> get ( build_url ( assessment . id ) )
407
408
|> json_response ( 200 )
408
409
|> Map . get ( "questions" , [ ] )
409
410
|> Enum . map ( & Map . delete ( & 1 , "answer" ) )
@@ -457,7 +458,7 @@ defmodule CadetWeb.AssessmentsControllerTest do
457
458
resp_libraries =
458
459
conn
459
460
|> sign_in ( user )
460
- |> post ( build_url ( assessment . id ) )
461
+ |> get ( build_url ( assessment . id ) )
461
462
|> json_response ( 200 )
462
463
|> Map . get ( "questions" , [ ] )
463
464
|> Enum . map ( & Map . get ( & 1 , "library" ) )
@@ -492,7 +493,7 @@ defmodule CadetWeb.AssessmentsControllerTest do
492
493
resp_solutions =
493
494
conn
494
495
|> sign_in ( user )
495
- |> post ( build_url ( assessment . id ) )
496
+ |> get ( build_url ( assessment . id ) )
496
497
|> json_response ( 200 )
497
498
|> Map . get ( "questions" , [ ] )
498
499
|> Enum . map ( & Map . take ( & 1 , [ "solution" ] ) )
@@ -534,7 +535,7 @@ defmodule CadetWeb.AssessmentsControllerTest do
534
535
resp =
535
536
conn
536
537
|> sign_in ( user )
537
- |> post ( build_url ( assessment . id ) )
538
+ |> get ( build_url ( assessment . id ) )
538
539
|> json_response ( 200 )
539
540
|> Map . get ( "questions" , [ ] )
540
541
|> Enum . map ( & Map . take ( & 1 , ~w( xp grade) ) )
@@ -559,7 +560,7 @@ defmodule CadetWeb.AssessmentsControllerTest do
559
560
resp_solutions =
560
561
conn
561
562
|> sign_in ( user )
562
- |> post ( build_url ( assessment . id ) )
563
+ |> get ( build_url ( assessment . id ) )
563
564
|> json_response ( 200 )
564
565
|> Map . get ( "questions" , [ ] )
565
566
|> Enum . map ( & Map . get ( & 1 , [ "solution" ] ) )
@@ -570,7 +571,7 @@ defmodule CadetWeb.AssessmentsControllerTest do
570
571
end
571
572
end
572
573
573
- describe "POST /assessment_id, student" do
574
+ describe "GET /assessment_id, student" do
574
575
test "it renders previously submitted answers" , % {
575
576
conn: conn ,
576
577
users: % { student: student } ,
@@ -593,7 +594,7 @@ defmodule CadetWeb.AssessmentsControllerTest do
593
594
resp_answers =
594
595
conn
595
596
|> sign_in ( student )
596
- |> post ( build_url ( assessment . id ) )
597
+ |> get ( build_url ( assessment . id ) )
597
598
|> json_response ( 200 )
598
599
|> Map . get ( "questions" , [ ] )
599
600
|> Enum . map ( & Map . take ( & 1 , [ "answer" ] ) )
@@ -617,7 +618,7 @@ defmodule CadetWeb.AssessmentsControllerTest do
617
618
conn =
618
619
conn
619
620
|> sign_in ( student )
620
- |> post ( build_url ( mission . assessment . id ) )
621
+ |> get ( build_url ( mission . assessment . id ) )
621
622
622
623
assert response ( conn , 401 ) == "Assessment not open"
623
624
end
@@ -635,13 +636,13 @@ defmodule CadetWeb.AssessmentsControllerTest do
635
636
conn =
636
637
conn
637
638
|> sign_in ( student )
638
- |> post ( build_url ( mission . assessment . id ) )
639
+ |> get ( build_url ( mission . assessment . id ) )
639
640
640
641
assert response ( conn , 400 ) == "Assessment not found"
641
642
end
642
643
end
643
644
644
- describe "POST /assessment_id, non-students" do
645
+ describe "GET /assessment_id, non-students" do
645
646
test "it renders empty answers" , % {
646
647
conn: conn ,
647
648
users: users ,
@@ -654,7 +655,7 @@ defmodule CadetWeb.AssessmentsControllerTest do
654
655
resp_answers =
655
656
conn
656
657
|> sign_in ( user )
657
- |> post ( build_url ( assessment . id ) )
658
+ |> get ( build_url ( assessment . id ) )
658
659
|> json_response ( 200 )
659
660
|> Map . get ( "questions" , [ ] )
660
661
|> Enum . map ( & Map . get ( & 1 , [ "answer" ] ) )
@@ -682,7 +683,7 @@ defmodule CadetWeb.AssessmentsControllerTest do
682
683
resp =
683
684
conn
684
685
|> sign_in ( user )
685
- |> post ( build_url ( mission . assessment . id ) )
686
+ |> get ( build_url ( mission . assessment . id ) )
686
687
|> json_response ( 200 )
687
688
688
689
assert resp [ "id" ] == mission . assessment . id
@@ -705,22 +706,22 @@ defmodule CadetWeb.AssessmentsControllerTest do
705
706
resp =
706
707
conn
707
708
|> sign_in ( user )
708
- |> post ( build_url ( mission . assessment . id ) )
709
+ |> get ( build_url ( mission . assessment . id ) )
709
710
|> json_response ( 200 )
710
711
711
712
assert resp [ "id" ] == mission . assessment . id
712
713
end
713
714
end
714
715
end
715
716
716
- describe "POST /assessment_id/submit unauthenticated" do
717
+ describe "GET /assessment_id/submit unauthenticated" do
717
718
test "is not permitted" , % { conn: conn , assessments: % { "mission" => % { assessment: assessment } } } do
718
719
conn = post ( conn , build_url_submit ( assessment . id ) )
719
720
assert response ( conn , 401 ) == "Unauthorised"
720
721
end
721
722
end
722
723
723
- describe "POST /assessment_id/submit students" do
724
+ describe "GET /assessment_id/submit students" do
724
725
for role <- ~w( student staff admin) a do
725
726
@ tag role: role
726
727
test "is successful for attempted assessments for #{ role } " , % {
@@ -1062,7 +1063,7 @@ defmodule CadetWeb.AssessmentsControllerTest do
1062
1063
|> Repo . update! ( )
1063
1064
1064
1065
for { _role , user } <- users do
1065
- conn = conn |> sign_in ( user ) |> post ( build_url ( assessment . id ) )
1066
+ conn = conn |> sign_in ( user ) |> get ( build_url ( assessment . id ) )
1066
1067
assert response ( conn , 403 ) == "Missing Password."
1067
1068
end
1068
1069
end
@@ -1085,7 +1086,7 @@ defmodule CadetWeb.AssessmentsControllerTest do
1085
1086
conn =
1086
1087
conn
1087
1088
|> sign_in ( user )
1088
- |> post ( build_url ( assessment . id ) , % { :password => "wrong" } )
1089
+ |> post ( build_url_unlock ( assessment . id ) , % { :password => "wrong" } )
1089
1090
1090
1091
assert response ( conn , 403 ) == "Invalid Password."
1091
1092
end
@@ -1107,7 +1108,7 @@ defmodule CadetWeb.AssessmentsControllerTest do
1107
1108
|> Repo . update! ( )
1108
1109
1109
1110
insert ( :submission , % { assessment: assessment , student: student } )
1110
- conn = conn |> sign_in ( student ) |> post ( build_url ( assessment . id ) )
1111
+ conn = conn |> sign_in ( student ) |> get ( build_url ( assessment . id ) )
1111
1112
assert response ( conn , 200 )
1112
1113
end
1113
1114
@@ -1122,7 +1123,7 @@ defmodule CadetWeb.AssessmentsControllerTest do
1122
1123
conn =
1123
1124
conn
1124
1125
|> sign_in ( user )
1125
- |> post ( build_url ( assessment . id ) , % { :password => "wrong" } )
1126
+ |> post ( build_url_unlock ( assessment . id ) , % { :password => "wrong" } )
1126
1127
|> json_response ( 200 )
1127
1128
1128
1129
assert conn [ "id" ] == assessment . id
@@ -1145,7 +1146,7 @@ defmodule CadetWeb.AssessmentsControllerTest do
1145
1146
conn =
1146
1147
conn
1147
1148
|> sign_in ( user )
1148
- |> post ( build_url ( assessment . id ) , % { :password => "mysupersecretpassword" } )
1149
+ |> post ( build_url_unlock ( assessment . id ) , % { :password => "mysupersecretpassword" } )
1149
1150
|> json_response ( 200 )
1150
1151
1151
1152
assert conn [ "id" ] == assessment . id
@@ -1167,7 +1168,7 @@ defmodule CadetWeb.AssessmentsControllerTest do
1167
1168
conn =
1168
1169
conn
1169
1170
|> sign_in ( student )
1170
- |> post ( build_url ( mission . assessment . id ) )
1171
+ |> get ( build_url ( mission . assessment . id ) )
1171
1172
1172
1173
assert response ( conn , 200 )
1173
1174
end
@@ -1176,6 +1177,7 @@ defmodule CadetWeb.AssessmentsControllerTest do
1176
1177
defp build_url , do: "/v2/assessments/"
1177
1178
defp build_url ( assessment_id ) , do: "/v2/assessments/#{ assessment_id } "
1178
1179
defp build_url_submit ( assessment_id ) , do: "/v2/assessments/#{ assessment_id } /submit"
1180
+ defp build_url_unlock ( assessment_id ) , do: "/v2/assessments/#{ assessment_id } /unlock"
1179
1181
1180
1182
defp open_at_asc_comparator ( x , y ) , do: Timex . before? ( x . open_at , y . open_at )
1181
1183
0 commit comments