From dd5ec9621bbf0ce995ce19a61eb39b29bb8ef73f Mon Sep 17 00:00:00 2001 From: iequidoo Date: Sun, 31 May 2026 13:11:33 -0300 Subject: [PATCH] feat: Add IMAP folder to Context::get_info() (#8285) Note that the default value "INBOX" isn't shown however. --- src/transport.rs | 6 +++++- src/transport/transport_tests.rs | 12 ++++++++++-- 2 files changed, 15 insertions(+), 3 deletions(-) diff --git a/src/transport.rs b/src/transport.rs index 9e2a23d83..97d5f5b02 100644 --- a/src/transport.rs +++ b/src/transport.rs @@ -252,7 +252,11 @@ impl fmt::Display for ConfiguredLoginParam { write!(f, "{imap}")?; first = false; } - write!(f, "] smtp:[")?; + write!(f, "]")?; + if let Some(folder) = &self.imap_folder { + write!(f, " folder:{folder:?}")?; + } + write!(f, " smtp:[")?; let mut first = true; for smtp in &self.smtp { if !first { diff --git a/src/transport/transport_tests.rs b/src/transport/transport_tests.rs index 63773ca25..b06cea918 100644 --- a/src/transport/transport_tests.rs +++ b/src/transport/transport_tests.rs @@ -34,7 +34,7 @@ async fn test_save_load_login_param() -> Result<()> { }, user: "alice".to_string(), }], - imap_folder: None, + imap_folder: Some("Folder".to_string()), imap_user: "".to_string(), imap_password: "foo".to_string(), smtp: vec![ConfiguredServerLoginParam { @@ -56,7 +56,7 @@ async fn test_save_load_login_param() -> Result<()> { .clone() .save_to_transports_table(&t, &EnteredLoginParam::default(), time()) .await?; - let expected_param = r#"{"addr":"alice@example.org","imap":[{"connection":{"host":"imap.example.com","port":123,"security":"Starttls"},"user":"alice"}],"imap_user":"","imap_password":"foo","smtp":[{"connection":{"host":"smtp.example.com","port":456,"security":"Tls"},"user":"alice@example.org"}],"smtp_user":"","smtp_password":"bar","provider_id":null,"certificate_checks":"Strict","oauth2":false}"#; + let expected_param = r#"{"addr":"alice@example.org","imap":[{"connection":{"host":"imap.example.com","port":123,"security":"Starttls"},"user":"alice"}],"imap_folder":"Folder","imap_user":"","imap_password":"foo","smtp":[{"connection":{"host":"smtp.example.com","port":456,"security":"Tls"},"user":"alice@example.org"}],"smtp_user":"","smtp_password":"bar","provider_id":null,"certificate_checks":"Strict","oauth2":false}"#; assert_eq!( t.sql .query_get_value::("SELECT configured_param FROM transports", ()) @@ -68,6 +68,14 @@ async fn test_save_load_login_param() -> Result<()> { let (_transport_id, loaded) = ConfiguredLoginParam::load(&t).await?.unwrap(); assert_eq!(param, loaded); + let formatted = format!(" {loaded}"); + assert!(formatted.contains(" ***@example.org")); + assert!(formatted.contains(" imap:[imap.example.com:123:starttls]")); + assert!(formatted.contains(" folder:\"Folder\"")); + assert!(formatted.contains(" smtp:[smtp.example.com:456:tls]")); + assert!(formatted.contains(" provider:none")); + assert!(formatted.contains(" cert_strict")); + // Legacy ConfiguredImapCertificateChecks config is ignored t.set_config(Config::ConfiguredImapCertificateChecks, Some("999")) .await?;