@@ -28,17 +28,39 @@ defmodule CadetWeb.AdminTeamsControllerTest do
2828 end
2929
3030 @ 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
3232 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 } )
3641
3742 conn = get ( conn , build_url ( course_id ) )
3843 assert response ( conn , 200 )
3944
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
4264 end
4365 end
4466
0 commit comments