elektromail 0.1.1

A minimal, Rust-based IMAP + SMTP mail server for local development and testing
Documentation
//! Integration test.

use std::io;

use elektromail::{Server, ServerConfig};
use elektromail_test_support as support;

#[tokio::test]
async fn imap_fetch_sequence_range_filters_by_sequence() -> io::Result<()> {
    let server = Server::start(ServerConfig::default()).await?;
    let smtp_addr = server.smtp_addr();
    let imap_addr = server.imap_addr();

    support::smtp_send(smtp_addr, "user@example.com").await?;
    support::smtp_send(smtp_addr, "user@example.com").await?;
    support::smtp_send(smtp_addr, "user@example.com").await?;

    let fetched = support::imap_fetch(imap_addr, "2:*").await?;
    assert!(!fetched.contains("* 1 FETCH"));
    assert!(fetched.contains("* 2 FETCH"));
    assert!(fetched.contains("* 3 FETCH"));

    server.stop().await?;
    Ok(())
}