mirror of
https://github.com/chatmail/core.git
synced 2026-05-08 01:16:31 +03:00
test: Directly unwrap in TestContext::get_chat() (#4614)
Directly unwrap in TestContext::get_chat() Turns out that all usages of get_chat() directly unwrapped, because in a test it doesn't make sense to handle the error of there being no chat.
This commit is contained in:
@@ -2941,7 +2941,7 @@ async fn test_outgoing_private_reply_multidevice() -> Result<()> {
|
|||||||
let received = alice2.get_last_msg().await;
|
let received = alice2.get_last_msg().await;
|
||||||
|
|
||||||
// That's a regression test for https://github.com/deltachat/deltachat-core-rust/issues/2949:
|
// That's a regression test for https://github.com/deltachat/deltachat-core-rust/issues/2949:
|
||||||
assert_eq!(received.chat_id, alice2.get_chat(&bob).await.unwrap().id);
|
assert_eq!(received.chat_id, alice2.get_chat(&bob).await.id);
|
||||||
|
|
||||||
let alice2_bob_contact = alice2.add_or_lookup_contact(&bob).await;
|
let alice2_bob_contact = alice2.add_or_lookup_contact(&bob).await;
|
||||||
assert_eq!(received.from_id, ContactId::SELF);
|
assert_eq!(received.from_id, ContactId::SELF);
|
||||||
|
|||||||
@@ -1287,10 +1287,7 @@ mod tests {
|
|||||||
// Now Alice's chat with Bob should still be hidden, the verified message should
|
// Now Alice's chat with Bob should still be hidden, the verified message should
|
||||||
// appear in the group chat.
|
// appear in the group chat.
|
||||||
|
|
||||||
let chat = alice
|
let chat = alice.get_chat(&bob).await;
|
||||||
.get_chat(&bob)
|
|
||||||
.await
|
|
||||||
.expect("Alice has no 1:1 chat with bob");
|
|
||||||
assert_eq!(
|
assert_eq!(
|
||||||
chat.blocked,
|
chat.blocked,
|
||||||
Blocked::Yes,
|
Blocked::Yes,
|
||||||
@@ -1325,10 +1322,7 @@ mod tests {
|
|||||||
contact_alice.is_verified(&bob.ctx).await?,
|
contact_alice.is_verified(&bob.ctx).await?,
|
||||||
VerifiedStatus::BidirectVerified
|
VerifiedStatus::BidirectVerified
|
||||||
);
|
);
|
||||||
let chat = bob
|
let chat = bob.get_chat(&alice).await;
|
||||||
.get_chat(&alice)
|
|
||||||
.await
|
|
||||||
.expect("Bob has no 1:1 chat with Alice");
|
|
||||||
assert_eq!(
|
assert_eq!(
|
||||||
chat.blocked,
|
chat.blocked,
|
||||||
Blocked::Yes,
|
Blocked::Yes,
|
||||||
|
|||||||
@@ -587,19 +587,21 @@ impl TestContext {
|
|||||||
Contact::get_by_id(&self.ctx, contact_id).await.unwrap()
|
Contact::get_by_id(&self.ctx, contact_id).await.unwrap()
|
||||||
}
|
}
|
||||||
|
|
||||||
/// Returns 1:1 [`Chat`] with another account, if it exists.
|
/// Returns 1:1 [`Chat`] with another account. Panics if it doesn't exist.
|
||||||
///
|
///
|
||||||
/// This first creates a contact using the configured details on the other account, then
|
/// This first creates a contact using the configured details on the other account, then
|
||||||
/// creates a 1:1 chat with this contact.
|
/// gets the 1:1 chat with this contact.
|
||||||
pub async fn get_chat(&self, other: &TestContext) -> Option<Chat> {
|
pub async fn get_chat(&self, other: &TestContext) -> Chat {
|
||||||
let contact = self.add_or_lookup_contact(other).await;
|
let contact = self.add_or_lookup_contact(other).await;
|
||||||
match ChatId::lookup_by_contact(&self.ctx, contact.id)
|
let chat_id = ChatId::lookup_by_contact(&self.ctx, contact.id)
|
||||||
.await
|
.await
|
||||||
.unwrap()
|
.unwrap()
|
||||||
{
|
.expect(
|
||||||
Some(id) => Some(Chat::load_from_db(&self.ctx, id).await.unwrap()),
|
"There is no chat with this contact. \
|
||||||
None => None,
|
Hint: Use create_chat() instead of get_chat() if this is expected.",
|
||||||
}
|
);
|
||||||
|
|
||||||
|
Chat::load_from_db(&self.ctx, chat_id).await.unwrap()
|
||||||
}
|
}
|
||||||
|
|
||||||
/// Creates or returns an existing 1:1 [`Chat`] with another account.
|
/// Creates or returns an existing 1:1 [`Chat`] with another account.
|
||||||
|
|||||||
@@ -159,7 +159,7 @@ async fn test_create_verified_oneonone_chat() -> Result<()> {
|
|||||||
|
|
||||||
// The chat should be and stay unprotected
|
// The chat should be and stay unprotected
|
||||||
{
|
{
|
||||||
let chat = alice.get_chat(&fiona_new).await.unwrap();
|
let chat = alice.get_chat(&fiona_new).await;
|
||||||
assert!(!chat.is_protected());
|
assert!(!chat.is_protected());
|
||||||
assert!(chat.is_protection_broken());
|
assert!(chat.is_protection_broken());
|
||||||
|
|
||||||
@@ -287,21 +287,21 @@ async fn test_verified_oneonone_chat_enable_disable() -> Result<()> {
|
|||||||
)
|
)
|
||||||
.await?;
|
.await?;
|
||||||
|
|
||||||
let chat = alice.get_chat(&bob).await.unwrap();
|
let chat = alice.get_chat(&bob).await;
|
||||||
assert!(!chat.is_protected());
|
assert!(!chat.is_protected());
|
||||||
assert!(chat.is_protection_broken());
|
assert!(chat.is_protection_broken());
|
||||||
|
|
||||||
if alice_accepts_breakage {
|
if alice_accepts_breakage {
|
||||||
tcm.section("Alice clicks 'Accept' on the input-bar-dialog");
|
tcm.section("Alice clicks 'Accept' on the input-bar-dialog");
|
||||||
chat.id.accept(&alice).await?;
|
chat.id.accept(&alice).await?;
|
||||||
let chat = alice.get_chat(&bob).await.unwrap();
|
let chat = alice.get_chat(&bob).await;
|
||||||
assert!(!chat.is_protected());
|
assert!(!chat.is_protected());
|
||||||
assert!(!chat.is_protection_broken());
|
assert!(!chat.is_protection_broken());
|
||||||
}
|
}
|
||||||
|
|
||||||
// Bob sends a message from DC again
|
// Bob sends a message from DC again
|
||||||
tcm.send_recv(&bob, &alice, "Hello from DC").await;
|
tcm.send_recv(&bob, &alice, "Hello from DC").await;
|
||||||
let chat = alice.get_chat(&bob).await.unwrap();
|
let chat = alice.get_chat(&bob).await;
|
||||||
assert!(chat.is_protected());
|
assert!(chat.is_protected());
|
||||||
assert!(!chat.is_protection_broken());
|
assert!(!chat.is_protection_broken());
|
||||||
}
|
}
|
||||||
@@ -436,7 +436,7 @@ async fn test_old_message_3() -> Result<()> {
|
|||||||
.await?;
|
.await?;
|
||||||
|
|
||||||
alice
|
alice
|
||||||
.golden_test_chat(alice.get_chat(&bob).await.unwrap().id, "test_old_message_3")
|
.golden_test_chat(alice.get_chat(&bob).await.id, "test_old_message_3")
|
||||||
.await;
|
.await;
|
||||||
|
|
||||||
Ok(())
|
Ok(())
|
||||||
@@ -636,12 +636,12 @@ async fn test_break_protection_then_verify_again() -> Result<()> {
|
|||||||
// him as unverified:
|
// him as unverified:
|
||||||
VerifiedStatus::Unverified
|
VerifiedStatus::Unverified
|
||||||
);
|
);
|
||||||
let chat = alice.get_chat(&bob_new).await.unwrap();
|
let chat = alice.get_chat(&bob_new).await;
|
||||||
assert_eq!(chat.is_protected(), false);
|
assert_eq!(chat.is_protected(), false);
|
||||||
assert_eq!(chat.is_protection_broken(), true);
|
assert_eq!(chat.is_protection_broken(), true);
|
||||||
|
|
||||||
{
|
{
|
||||||
let alice_bob_chat = alice.get_chat(&bob_new).await.unwrap();
|
let alice_bob_chat = alice.get_chat(&bob_new).await;
|
||||||
assert!(!alice_bob_chat.can_send(&alice).await?);
|
assert!(!alice_bob_chat.can_send(&alice).await?);
|
||||||
|
|
||||||
// Alice's UI should still be able to save a draft, which Alice started to type right when she got Bob's message:
|
// Alice's UI should still be able to save a draft, which Alice started to type right when she got Bob's message:
|
||||||
@@ -706,7 +706,7 @@ async fn assert_verified(this: &TestContext, other: &TestContext, protected: Pro
|
|||||||
VerifiedStatus::BidirectVerified
|
VerifiedStatus::BidirectVerified
|
||||||
);
|
);
|
||||||
|
|
||||||
let chat = this.get_chat(other).await.unwrap();
|
let chat = this.get_chat(other).await;
|
||||||
let (expect_protected, expect_broken) = match protected {
|
let (expect_protected, expect_broken) = match protected {
|
||||||
ProtectionStatus::Unprotected => (false, false),
|
ProtectionStatus::Unprotected => (false, false),
|
||||||
ProtectionStatus::Protected => (true, false),
|
ProtectionStatus::Protected => (true, false),
|
||||||
|
|||||||
Reference in New Issue
Block a user