1717def solver_service (
1818 mocker : MockerFixture ,
1919 mocked_catalog_rpc_api : dict [str , MockType ],
20+ mocked_webserver_rpc_api : dict [str , MockType ],
2021) -> SolverService :
2122 return SolverService (
2223 catalog_service = CatalogService (client = mocker .MagicMock ()),
@@ -39,3 +40,43 @@ async def test_get_solver(
3940
4041 assert isinstance (solver , Solver )
4142 mocked_catalog_rpc_api ["get_service" ].assert_called_once ()
43+
44+
45+ async def test_list_jobs (
46+ solver_service : SolverService ,
47+ mocked_webserver_rpc_api : dict [str , MockType ],
48+ product_name : ProductName ,
49+ user_id : UserID ,
50+ ):
51+ # Test default parameters
52+ jobs , page_meta = await solver_service .list_jobs (
53+ user_id = user_id ,
54+ product_name = product_name ,
55+ )
56+ assert isinstance (jobs , list )
57+ mocked_webserver_rpc_api ["list_projects_marked_as_jobs" ].assert_called_once_with (
58+ product_name = product_name ,
59+ user_id = user_id ,
60+ offset = 0 ,
61+ limit = 999 ,
62+ job_parent_resource_name_filter = "solvers" ,
63+ )
64+ assert page_meta .total >= 0
65+ assert page_meta .limit == 999
66+ assert page_meta .offset == 0
67+
68+ # Test with explicit pagination
69+ mocked_webserver_rpc_api ["list_projects_marked_as_jobs" ].reset_mock ()
70+ jobs , page_meta = await solver_service .list_jobs (
71+ user_id = user_id ,
72+ product_name = product_name ,
73+ offset = 10 ,
74+ limit = 20 ,
75+ )
76+ mocked_webserver_rpc_api ["list_projects_marked_as_jobs" ].assert_called_once_with (
77+ product_name = product_name ,
78+ user_id = user_id ,
79+ offset = 10 ,
80+ limit = 20 ,
81+ job_parent_resource_name_filter = "solvers" ,
82+ )
0 commit comments