From 49f07421ec3357733ffc1ff63c96852c91c364f6 Mon Sep 17 00:00:00 2001 From: "B. Petersen" Date: Thu, 10 Sep 2020 20:46:02 +0200 Subject: [PATCH] add a test that checks maybe_warn_on_bad_time() adds a new message only every day --- src/dc_tools.rs | 36 ++++++++++++++++++++++++++++++++++++ 1 file changed, 36 insertions(+) diff --git a/src/dc_tools.rs b/src/dc_tools.rs index 8a39195d5..43acff91a 100644 --- a/src/dc_tools.rs +++ b/src/dc_tools.rs @@ -842,6 +842,7 @@ mod tests { assert_eq!("@d.tt".parse::().is_ok(), false); } + use crate::chat; use crate::chatlist::Chatlist; use chrono::{NaiveDate, NaiveDateTime, NaiveTime}; use proptest::prelude::*; @@ -1064,5 +1065,40 @@ mod tests { maybe_warn_on_bad_time(&t.ctx, timestamp_past, get_provider_update_timestamp()).await; let chats = Chatlist::try_load(&t.ctx, 0, None, None).await.unwrap(); assert_eq!(chats.len(), 1); + let device_chat_id = chats.get_chat_id(0); + let msgs = chat::get_chat_msgs(&t.ctx, device_chat_id, 0, None).await; + assert_eq!(msgs.len(), 1); + + // the message should be added only once a day - test that an hour later and nearly a day later + maybe_warn_on_bad_time( + &t.ctx, + timestamp_past + 60 * 60, + get_provider_update_timestamp(), + ) + .await; + let msgs = chat::get_chat_msgs(&t.ctx, device_chat_id, 0, None).await; + assert_eq!(msgs.len(), 1); + + maybe_warn_on_bad_time( + &t.ctx, + timestamp_past + 60 * 60 * 24 - 1, + get_provider_update_timestamp(), + ) + .await; + let msgs = chat::get_chat_msgs(&t.ctx, device_chat_id, 0, None).await; + assert_eq!(msgs.len(), 1); + + // next day, there should be another device message + maybe_warn_on_bad_time( + &t.ctx, + timestamp_past + 60 * 60 * 24, + get_provider_update_timestamp(), + ) + .await; + let chats = Chatlist::try_load(&t.ctx, 0, None, None).await.unwrap(); + assert_eq!(chats.len(), 1); + assert_eq!(device_chat_id, chats.get_chat_id(0)); + let msgs = chat::get_chat_msgs(&t.ctx, device_chat_id, 0, None).await; + assert_eq!(msgs.len(), 2); } }