package imapx import ( "testing" "time" "github.com/emersion/go-imap/v2" ) func TestMessageKeyPrefersMessageID(t *testing.T) { env := &imap.Envelope{MessageID: ""} if got := MessageKey(env, 100); got != "" { t.Fatalf("got %q, want ", got) } } func TestMessageKeyFallbackStable(t *testing.T) { env := &imap.Envelope{ Subject: "Hi", Date: time.Unix(1700000000, 0).UTC(), From: []imap.Address{{Mailbox: "a", Host: "x.com"}}, To: []imap.Address{{Mailbox: "b", Host: "y.com"}}, } k1 := MessageKey(env, 42) k2 := MessageKey(env, 42) if k1 != k2 { t.Fatal("fallback key must be deterministic") } if MessageKey(env, 43) == k1 { t.Fatal("different size must change key") } }