diff --git a/src/chat.rs b/src/chat.rs index e4a164f5b..3b22fea55 100644 --- a/src/chat.rs +++ b/src/chat.rs @@ -1015,7 +1015,7 @@ impl Chat { ); } } else { - error!(context, "Cannot send message, not configured.",); + bail!("Cannot prepare message for sending, address is not configured."); } schedule_ephemeral_task(context).await; diff --git a/src/message.rs b/src/message.rs index 9230313c5..2f09781b9 100644 --- a/src/message.rs +++ b/src/message.rs @@ -1833,6 +1833,23 @@ mod tests { assert_eq!(_msg2.get_filemime(), None); } + /// Tests that message cannot be prepared if account has no configured address. + #[async_std::test] + async fn test_prepare_not_configured() { + let d = test::TestContext::new().await; + let ctx = &d.ctx; + + let contact = Contact::create(ctx, "", "dest@example.com") + .await + .expect("failed to create contact"); + + let chat = chat::create_by_contact_id(ctx, contact).await.unwrap(); + + let mut msg = Message::new(Viewtype::Text); + + assert!(chat::prepare_msg(ctx, chat, &mut msg).await.is_err()); + } + #[async_std::test] async fn test_get_summarytext_by_raw() { let d = test::TestContext::new().await;