@@ -28,17 +28,39 @@ defmodule CadetWeb.AdminTeamsControllerTest do
28
28
end
29
29
30
30
@ tag authenticate: :staff
31
- test "returns a list of teams" , % { conn: conn } do
31
+ test "returns a list of teams for the specified course only " , % { conn: conn } do
32
32
course_id = conn . assigns . course_id
33
- team = insert ( :team )
34
- insert ( :team_member , % { team: team } )
35
- insert ( :team_member , % { team: team } )
33
+ course = Repo . get ( Course , course_id )
34
+ assessment = insert ( :assessment , % { course: course , max_team_size: 2 } )
35
+ team1 = insert ( :team , % { assessment: assessment } )
36
+ insert ( :team_member , % { team: team1 } )
37
+ insert ( :team_member , % { team: team1 } )
38
+ team2 = insert ( :team , % { assessment: assessment } )
39
+ insert ( :team_member , % { team: team2 } )
40
+ insert ( :team_member , % { team: team2 } )
36
41
37
42
conn = get ( conn , build_url ( course_id ) )
38
43
assert response ( conn , 200 )
39
44
40
- response_body = conn . resp_body |> Jason . decode! ( )
41
- assert Enum . any? ( response_body , fn team_map -> team_map [ "teamId" ] == team . id end )
45
+ # Insert other random teams to test filtering
46
+ other_course = insert ( :course )
47
+ other_assessment = insert ( :assessment , % { course: other_course , max_team_size: 2 } )
48
+ team3 = insert ( :team , % { assessment: other_assessment } )
49
+ insert ( :team_member , % { team: team3 } )
50
+ insert ( :team_member , % { team: team3 } )
51
+
52
+ response_body =
53
+ conn . resp_body
54
+ |> Jason . decode! ( )
55
+ # Sort the teams by teamId for consistent testing
56
+ |> Enum . sort_by ( & & 1 [ "teamId" ] )
57
+
58
+ assert is_list ( response_body )
59
+ assert length ( response_body ) == 2
60
+ assert response_body |> hd ( ) |> Map . get ( "teamId" ) == team1 . id
61
+ assert response_body |> hd ( ) |> Map . get ( "assessmentId" ) == assessment . id
62
+ assert response_body |> tl ( ) |> hd ( ) |> Map . get ( "teamId" ) == team2 . id
63
+ assert response_body |> tl ( ) |> hd ( ) |> Map . get ( "assessmentId" ) == assessment . id
42
64
end
43
65
end
44
66
0 commit comments