Smail/backend/dto/parsemail/email_storage_test.go
smail f60d3b0880
Some checks are pending
Security Checks / security (push) Waiting to run
整理前后端与测试构建目录并完善配置和安全引导
统一 frontend、backend、test、test-log 和 out 目录,更新构建、部署及测试入口;纳入配置管理兼容与首次安全引导修复;排除本机配置、密钥和测试产物。
2026-09-05 19:19:52 +08:00

39 lines
1.0 KiB
Go

package parsemail
import (
"encoding/json"
"testing"
)
func TestEncodeStoredFields(t *testing.T) {
email := &Email{
To: []*User{{Name: "Alice", EmailAddress: "alice@example.com"}},
Attachments: []*Attachment{{Filename: "report.txt", ContentType: "text/plain", Content: []byte("data")}},
}
fields, err := email.EncodeStoredFields()
if err != nil {
t.Fatal(err)
}
var recipients []*User
if err := json.Unmarshal([]byte(fields.To), &recipients); err != nil {
t.Fatal(err)
}
if len(recipients) != 1 || recipients[0].EmailAddress != "alice@example.com" {
t.Fatalf("unexpected recipients: %#v", recipients)
}
var attachments []*Attachment
if err := json.Unmarshal([]byte(fields.Attachments), &attachments); err != nil {
t.Fatal(err)
}
if len(attachments) != 1 || string(attachments[0].Content) != "data" {
t.Fatalf("unexpected attachments: %#v", attachments)
}
}
func TestEncodeStoredFieldsRejectsNilEmail(t *testing.T) {
var email *Email
if _, err := email.EncodeStoredFields(); err == nil {
t.Fatal("nil email was accepted")
}
}