@@ -1433,16 +1433,14 @@ pub async fn get_dispute(msg: &Message, pool: &Pool<Sqlite>) -> Result<Dispute,
14331433
14341434pub async fn get_order ( msg : & Message , pool : & Pool < Sqlite > ) -> Result < Order , MostroError > {
14351435 let order_msg = msg. get_inner_message_kind ( ) ;
1436- let order_id = order_msg
1437- . id
1438- . ok_or ( MostroInternalErr ( ServiceError :: InvalidOrderId ) ) ?;
1436+ let order_id = order_msg. id . ok_or ( MostroCantDo ( CantDoReason :: NotFound ) ) ?;
14391437 let order = Order :: by_id ( pool, order_id)
14401438 . await
14411439 . map_err ( |e| MostroInternalErr ( ServiceError :: DbAccessError ( e. to_string ( ) ) ) ) ?;
14421440 if let Some ( order) = order {
14431441 Ok ( order)
14441442 } else {
1445- Err ( MostroInternalErr ( ServiceError :: InvalidOrderId ) )
1443+ Err ( MostroCantDo ( CantDoReason :: NotFound ) )
14461444 }
14471445}
14481446
@@ -1907,6 +1905,65 @@ mod tests {
19071905 assert ! ( orders. is_empty( ) ) ;
19081906 }
19091907
1908+ #[ tokio:: test]
1909+ async fn test_get_order_returns_not_found_when_id_missing ( ) {
1910+ initialize ( ) ;
1911+ let pool = setup_orders_pool ( ) . await ;
1912+ let message = Message :: Order ( MessageKind :: new (
1913+ None ,
1914+ None ,
1915+ None ,
1916+ Action :: AdminSettle ,
1917+ None ,
1918+ ) ) ;
1919+
1920+ let err = get_order ( & message, & pool) . await . unwrap_err ( ) ;
1921+ assert ! ( matches!(
1922+ err,
1923+ MostroError :: MostroCantDo ( CantDoReason :: NotFound )
1924+ ) ) ;
1925+ }
1926+
1927+ #[ tokio:: test]
1928+ async fn test_get_order_returns_not_found_when_order_absent ( ) {
1929+ initialize ( ) ;
1930+ let pool = setup_orders_pool ( ) . await ;
1931+ let missing_id = Uuid :: new_v4 ( ) ;
1932+ let message = Message :: Order ( MessageKind :: new (
1933+ Some ( missing_id) ,
1934+ None ,
1935+ None ,
1936+ Action :: AdminSettle ,
1937+ None ,
1938+ ) ) ;
1939+
1940+ let err = get_order ( & message, & pool) . await . unwrap_err ( ) ;
1941+ assert ! ( matches!(
1942+ err,
1943+ MostroError :: MostroCantDo ( CantDoReason :: NotFound )
1944+ ) ) ;
1945+ }
1946+
1947+ #[ tokio:: test]
1948+ async fn test_get_order_returns_order_when_found ( ) {
1949+ initialize ( ) ;
1950+ let pool = setup_orders_pool ( ) . await ;
1951+ let user_pubkey = "a" . repeat ( 64 ) ;
1952+ let order_id = Uuid :: new_v4 ( ) ;
1953+ insert_order ( & pool, order_id, Some ( & user_pubkey) , None , & user_pubkey) . await ;
1954+
1955+ let message = Message :: Order ( MessageKind :: new (
1956+ Some ( order_id) ,
1957+ None ,
1958+ None ,
1959+ Action :: AdminSettle ,
1960+ None ,
1961+ ) ) ;
1962+
1963+ let order = get_order ( & message, & pool) . await . unwrap ( ) ;
1964+ assert_eq ! ( order. id, order_id) ;
1965+ }
1966+
19101967 #[ test]
19111968 fn test_get_dev_fee_basic ( ) {
19121969 // 1000 sats Mostro fee at 30% -> 300 sats
0 commit comments