diff --git a/src/chat.rs b/src/chat.rs index 693489487..b54927cb5 100644 --- a/src/chat.rs +++ b/src/chat.rs @@ -2403,4 +2403,25 @@ mod tests { "bar" ); } + + #[test] + fn test_create_same_chat_twice() { + let context = dummy_context(); + let contact1 = Contact::create(&context.ctx, "bob", "bob@mail.de").unwrap(); + assert_ne!(contact1, 0); + + let chat_id = create_by_contact_id(&context.ctx, contact1).unwrap(); + assert!( + chat_id > DC_CHAT_ID_LAST_SPECIAL, + "chat_id too small {}", + chat_id + ); + let chat = Chat::load_from_db(&context.ctx, chat_id).unwrap(); + + let chat2_id = create_by_contact_id(&context.ctx, contact1).unwrap(); + assert_eq!(chat2_id, chat_id); + let chat2 = Chat::load_from_db(&context.ctx, chat2_id).unwrap(); + + assert_eq!(chat2.name, chat.name); + } } diff --git a/tests/stress.rs b/tests/stress.rs index 9939766e1..53392f186 100644 --- a/tests/stress.rs +++ b/tests/stress.rs @@ -2,9 +2,7 @@ use std::collections::HashSet; -use deltachat::chat::{self, Chat}; use deltachat::config; -use deltachat::contact::*; use deltachat::context::*; use deltachat::keyring::*; use deltachat::pgp; @@ -227,20 +225,3 @@ fn test_stress_tests() { let context = create_test_context(); stress_functions(&context.ctx); } - -#[test] -fn test_chat() { - let context = create_test_context(); - let contact1 = Contact::create(&context.ctx, "bob", "bob@mail.de").unwrap(); - assert_ne!(contact1, 0); - - let chat_id = chat::create_by_contact_id(&context.ctx, contact1).unwrap(); - assert!(chat_id > 9, "chat_id too small {}", chat_id); - let chat = Chat::load_from_db(&context.ctx, chat_id).unwrap(); - - let chat2_id = chat::create_by_contact_id(&context.ctx, contact1).unwrap(); - assert_eq!(chat2_id, chat_id); - let chat2 = Chat::load_from_db(&context.ctx, chat2_id).unwrap(); - - assert_eq!(chat2.name, chat.name); -}