package notification import ( "strings" "testing" ) func TestBuildMIMEMessageStructure(t *testing.T) { body := buildMIMEMessage(mimeMessage{ MessageID: "abc@example.test", From: "GuestGuard ", To: "to@example.test", Subject: "Verify your GuestGuard email", Text: "Hi Mira, please verify.", HTML: "

Hi Mira, please verify.

", }) s := string(body) checks := []string{ "Message-ID: ", "From: GuestGuard ", "To: to@example.test", "Subject: Verify your GuestGuard email", "MIME-Version: 1.0", "Content-Type: multipart/alternative; boundary=", "Content-Type: text/plain; charset=UTF-8", "Content-Type: text/html; charset=UTF-8", "Hi Mira, please verify.", "

Hi Mira, please verify.

", } for _, want := range checks { if !strings.Contains(s, want) { t.Errorf("MIME body missing %q\n---\n%s", want, s) } } } func TestGenerateMessageIDIncludesDomain(t *testing.T) { id := generateMessageID("no-reply@example.test") if !strings.HasSuffix(id, "@example.test") { t.Fatalf("message id has wrong domain: %s", id) } } func TestGenerateMessageIDFallback(t *testing.T) { id := generateMessageID("not-an-email") if !strings.HasSuffix(id, "@guestguard.local") { t.Fatalf("expected fallback domain: %s", id) } }