@@ -141,6 +141,66 @@ def test_admin_stats_with_leaderboard_name(self, test_client, mock_backend):
141141class TestAdminSubmissions :
142142 """Test admin submission endpoints."""
143143
144+ def test_list_leaderboard_submissions (self , test_client , mock_backend ):
145+ """GET /admin/leaderboards/{name}/submissions returns all submission metadata."""
146+ mock_backend .db .__enter__ = MagicMock (return_value = mock_backend .db )
147+ mock_backend .db .__exit__ = MagicMock (return_value = None )
148+ mock_backend .db .get_leaderboard_submission_history = MagicMock (return_value = [
149+ {
150+ "id" : 123 ,
151+ "leaderboard_name" : "test-lb" ,
152+ "file_name" : "submission.py" ,
153+ "user_id" : "42" ,
154+ "user_name" : "alice" ,
155+ "submission_time" : "2026-04-07T12:00:00Z" ,
156+ "done" : True ,
157+ },
158+ {
159+ "id" : 122 ,
160+ "leaderboard_name" : "test-lb" ,
161+ "file_name" : "submission_old.py" ,
162+ "user_id" : "43" ,
163+ "user_name" : "bob" ,
164+ "submission_time" : "2026-04-07T11:00:00Z" ,
165+ "done" : False ,
166+ },
167+ ])
168+
169+ response = test_client .get (
170+ "/admin/leaderboards/test-lb/submissions?limit=50&offset=10" ,
171+ headers = {"Authorization" : "Bearer test_token" },
172+ )
173+ assert response .status_code == 200
174+ assert response .json () == {
175+ "status" : "ok" ,
176+ "leaderboard" : "test-lb" ,
177+ "limit" : 50 ,
178+ "offset" : 10 ,
179+ "submissions" : [
180+ {
181+ "id" : 123 ,
182+ "leaderboard_name" : "test-lb" ,
183+ "file_name" : "submission.py" ,
184+ "user_id" : "42" ,
185+ "user_name" : "alice" ,
186+ "submission_time" : "2026-04-07T12:00:00Z" ,
187+ "done" : True ,
188+ },
189+ {
190+ "id" : 122 ,
191+ "leaderboard_name" : "test-lb" ,
192+ "file_name" : "submission_old.py" ,
193+ "user_id" : "43" ,
194+ "user_name" : "bob" ,
195+ "submission_time" : "2026-04-07T11:00:00Z" ,
196+ "done" : False ,
197+ },
198+ ],
199+ }
200+ mock_backend .db .get_leaderboard_submission_history .assert_called_once_with (
201+ "test-lb" , 50 , 10
202+ )
203+
144204 def test_get_submission (self , test_client , mock_backend ):
145205 """GET /admin/submissions/{id} returns submission."""
146206 mock_backend .db .__enter__ = MagicMock (return_value = mock_backend .db )
0 commit comments