From cd907882aeba52db719721a875ed5ab7aaaccd79 Mon Sep 17 00:00:00 2001 From: Jeremiah Russell Date: Mon, 20 Oct 2025 08:11:11 +0100 Subject: [PATCH] =?UTF-8?q?=F0=9F=A7=AA=20test(message-list):=20add=20edge?= =?UTF-8?q?-case=20tests=20(empty=20first=20page,=20no=20next=5Fpage=5Ftok?= =?UTF-8?q?en=20despite=20pages=20>=201)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/message_list.rs | 32 ++++++++++++++++++++++++++++++++ 1 file changed, 32 insertions(+) diff --git a/src/message_list.rs b/src/message_list.rs index 2624c2a..8dedbc2 100644 --- a/src/message_list.rs +++ b/src/message_list.rs @@ -863,4 +863,36 @@ mod tests { client.get_messages(0).await.unwrap(); assert_eq!(client.message_ids(), vec!["a", "b", "c"]); } + + #[tokio::test] + async fn empty_first_page_returns_early() { + let page = ListMessagesResponse { + messages: None, + next_page_token: None, + result_size_estimate: Some(0), + }; + let mut map = HashMap::new(); + map.insert(None, page); + let mut client = TestClient::with_pages(map); + client.get_messages(0).await.unwrap(); + assert!(client.message_ids().is_empty()); + } + + #[tokio::test] + async fn pages_param_gt1_but_no_next_token_stops() { + use google_gmail1::api::Message; + let first = ListMessagesResponse { + messages: Some(vec![Message { + id: Some("x".into()), + ..Default::default() + }]), + next_page_token: None, + result_size_estimate: Some(1), + }; + let mut map = HashMap::new(); + map.insert(None, first); + let mut client = TestClient::with_pages(map); + client.get_messages(5).await.unwrap(); + assert_eq!(client.message_ids(), vec!["x"]); + } }