From 904ef4ec2fd13e3baf325b5353ca785d6830d87f Mon Sep 17 00:00:00 2001 From: Oliver Drobnik Date: Fri, 23 May 2025 14:37:09 +0200 Subject: [PATCH] added IDLE test --- Demos/SwiftIMAPCLI/main.swift | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/Demos/SwiftIMAPCLI/main.swift b/Demos/SwiftIMAPCLI/main.swift index 43a2987..d86eb6f 100644 --- a/Demos/SwiftIMAPCLI/main.swift +++ b/Demos/SwiftIMAPCLI/main.swift @@ -71,6 +71,25 @@ do { let mailboxStatus = try await server.selectMailbox(inbox.name) print("Selected mailbox: \(inbox.name) with \(mailboxStatus.messageCount) messages") + // --- IMAP IDLE TEST BLOCK --- + print("\nTesting IMAP IDLE for 30 seconds. Any new events will be logged.\n") + do { + let idleStream = try await server.idle() + let idleTask = Task { + for await event in idleStream { + print("[IMAP IDLE EVENT] \(event)") + } + } + // Wait for 30 seconds, then exit IDLE + try await Task.sleep(nanoseconds: 30 * 1_000_000_000) + try await server.done() + idleTask.cancel() + print("\nExited IMAP IDLE mode.\n") + } catch { + print("❌ Error during IMAP IDLE: \(error)") + } + // --- END IMAP IDLE TEST BLOCK --- + print("\nSearching for invoices with PDF ...") let messagesSet: MessageIdentifierSet = try await server.search(criteria: [.subject("invoice"), .text(".pdf")]) print("Found \(messagesSet.count) messages")