@@ -194,6 +194,19 @@ fn message_is_after_cursor(message: &MessageRow, cursor: &MessagePageCursor) ->
194194 message. created_at > cursor. created_at || ( message. created_at == cursor. created_at && message. id > cursor. id )
195195}
196196
197+ async fn repo_messages_asc ( repo : & Arc < MockRepo > , conv_id : & str , limit : u32 ) -> Vec < MessageRow > {
198+ repo. list_messages_page (
199+ conv_id,
200+ & MessagePageParams {
201+ limit,
202+ direction : MessagePageDirection :: InitialLatest ,
203+ } ,
204+ )
205+ . await
206+ . unwrap ( )
207+ . items
208+ }
209+
197210#[ async_trait:: async_trait]
198211impl IConversationRepository for MockRepo {
199212 async fn get ( & self , id : & str ) -> Result < Option < ConversationRow > , aionui_db:: DbError > {
@@ -4037,7 +4050,7 @@ async fn send_message_recovers_when_finished_task_has_no_runtime_terminal() {
40374050 assert_eq ! ( task_mgr. kill_count( ) , 1 ) ;
40384051 assert_eq ! ( task_mgr. active_count( ) , 1 ) ;
40394052
4040- let messages = repo . get_messages ( & conv. id , 1 , 20 , SortOrder :: Asc ) . await . unwrap ( ) . items ;
4053+ let messages = repo_messages_asc ( & repo , & conv. id , 20 ) . await ;
40414054 let tips: Vec < _ > = messages. iter ( ) . filter ( |msg| msg. r#type == "tips" ) . collect ( ) ;
40424055 assert ! ( tips. is_empty( ) ) ;
40434056}
@@ -4083,7 +4096,7 @@ async fn send_message_auto_replays_clean_retryable_acp_error_once() {
40834096 assert_eq ! ( first. sent_contents( ) , vec![ "Hello" ] ) ;
40844097 assert_eq ! ( second. sent_contents( ) , vec![ "Hello" ] ) ;
40854098
4086- let messages = repo . get_messages ( & conv. id , 1 , 20 , SortOrder :: Asc ) . await . unwrap ( ) . items ;
4099+ let messages = repo_messages_asc ( & repo , & conv. id , 20 ) . await ;
40874100 let users: Vec < _ > = messages
40884101 . iter ( )
40894102 . filter ( |msg| msg. r#type == "text" && msg. position . as_deref ( ) == Some ( "right" ) )
@@ -4191,7 +4204,7 @@ async fn send_message_does_not_auto_replay_after_visible_output() {
41914204
41924205 assert_eq ! ( task_mgr. build_count( ) , 1 ) ;
41934206 assert_eq ! ( task_mgr. kill_count( ) , 1 ) ;
4194- let messages = repo . get_messages ( & conv. id , 1 , 20 , SortOrder :: Asc ) . await . unwrap ( ) . items ;
4207+ let messages = repo_messages_asc ( & repo , & conv. id , 20 ) . await ;
41954208 let assistants: Vec < _ > = messages
41964209 . iter ( )
41974210 . filter ( |msg| msg. r#type == "text" && msg. position . as_deref ( ) == Some ( "left" ) )
@@ -4283,7 +4296,7 @@ async fn send_message_does_not_auto_replay_model_not_found() {
42834296
42844297 assert_eq ! ( task_mgr. build_count( ) , 1 ) ;
42854298 assert_eq ! ( task_mgr. kill_count( ) , 1 ) ;
4286- let messages = repo . get_messages ( & conv. id , 1 , 20 , SortOrder :: Asc ) . await . unwrap ( ) . items ;
4299+ let messages = repo_messages_asc ( & repo , & conv. id , 20 ) . await ;
42874300 let tips: Vec < _ > = messages. iter ( ) . filter ( |msg| msg. r#type == "tips" ) . collect ( ) ;
42884301 assert_eq ! (
42894302 tips. len( ) ,
@@ -4341,7 +4354,7 @@ async fn send_message_auto_replay_stops_after_second_retryable_failure() {
43414354
43424355 assert_eq ! ( task_mgr. build_count( ) , 2 ) ;
43434356 assert_eq ! ( task_mgr. kill_count( ) , 2 ) ;
4344- let messages = repo . get_messages ( & conv. id , 1 , 20 , SortOrder :: Asc ) . await . unwrap ( ) . items ;
4357+ let messages = repo_messages_asc ( & repo , & conv. id , 20 ) . await ;
43454358 let tips: Vec < _ > = messages. iter ( ) . filter ( |msg| msg. r#type == "tips" ) . collect ( ) ;
43464359 assert_eq ! ( tips. len( ) , 1 , "second failure is final and visible" ) ;
43474360 let content: serde_json:: Value = serde_json:: from_str ( & tips[ 0 ] . content ) . unwrap ( ) ;
0 commit comments