33 lines
739 B
Go
33 lines
739 B
Go
package imapx
|
|
|
|
import (
|
|
"testing"
|
|
"time"
|
|
|
|
"github.com/emersion/go-imap/v2"
|
|
)
|
|
|
|
func TestMessageKeyPrefersMessageID(t *testing.T) {
|
|
env := &imap.Envelope{MessageID: "<abc@host>"}
|
|
if got := MessageKey(env, 100); got != "<abc@host>" {
|
|
t.Fatalf("got %q, want <abc@host>", 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")
|
|
}
|
|
}
|