Some checks are pending
Security Checks / security (push) Waiting to run
统一 frontend、backend、test、test-log 和 out 目录,更新构建、部署及测试入口;纳入配置管理兼容与首次安全引导修复;排除本机配置、密钥和测试产物。
39 lines
1.0 KiB
Go
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")
|
|
}
|
|
}
|