mirror of
https://github.com/wneessen/go-mail.git
synced 2024-12-23 02:50:39 +01:00
Remove redundant attachment and embed tests
Eliminated multiple test functions for file attachments and embeds, including TestMsg_AttachFile, TestMsg_AttachFromEmbedFS, and TestMsg_EmbedFile. These tests either duplicated functionality or were no longer relevant to the current code base. Simplifying the test suite enhances maintainability and reduces unnecessary checks.
This commit is contained in:
parent
f48ff6e150
commit
80bf7240b4
1 changed files with 0 additions and 342 deletions
342
msg_test.go
342
msg_test.go
|
@ -5154,348 +5154,6 @@ func TestMsg_EmbedFromEmbedFS(t *testing.T) {
|
|||
}
|
||||
}
|
||||
|
||||
// TestMsg_AttachFile tests the Msg.AttachFile and the WithFilename FileOption method
|
||||
|
||||
func TestMsg_AttachFile(t *testing.T) {
|
||||
tests := []struct {
|
||||
name string
|
||||
file string
|
||||
fn string
|
||||
sf bool
|
||||
}{
|
||||
{"File: README.md", "README.md", "README.md", false},
|
||||
{"File: doc.go", "doc.go", "foo.go", false},
|
||||
{"File: nonexisting", "", "invalid.file", true},
|
||||
}
|
||||
m := NewMsg()
|
||||
for _, tt := range tests {
|
||||
t.Run(tt.name, func(t *testing.T) {
|
||||
m.AttachFile(tt.file, WithFileName(tt.fn), nil)
|
||||
if len(m.attachments) != 1 && !tt.sf {
|
||||
t.Errorf("AttachFile() failed. Number of attachments expected: %d, got: %d", 1,
|
||||
len(m.attachments))
|
||||
return
|
||||
}
|
||||
if !tt.sf {
|
||||
file := m.attachments[0]
|
||||
if file == nil {
|
||||
t.Errorf("AttachFile() failed. Attachment file pointer is nil")
|
||||
return
|
||||
}
|
||||
if file.Name != tt.fn {
|
||||
t.Errorf("AttachFile() failed. Filename of attachment expected: %s, got: %s", tt.fn,
|
||||
file.Name)
|
||||
}
|
||||
buf := bytes.Buffer{}
|
||||
if _, err := file.Writer(&buf); err != nil {
|
||||
t.Errorf("failed to execute WriterFunc: %s", err)
|
||||
return
|
||||
}
|
||||
}
|
||||
m.Reset()
|
||||
})
|
||||
}
|
||||
}
|
||||
|
||||
// TestMsg_SetEmbeds tests the Msg.GetEmbeds method
|
||||
|
||||
func TestMsg_SetEmbeds(t *testing.T) {
|
||||
tests := []struct {
|
||||
name string
|
||||
embeds []string
|
||||
files []string
|
||||
}{
|
||||
{"File: replace README.md with doc.go", []string{"README.md"}, []string{"doc.go"}},
|
||||
{"File: add README.md with doc.go ", []string{"doc.go"}, []string{"README.md", "doc.go"}},
|
||||
{"File: remove README.md and doc.go", []string{"README.md", "doc.go"}, nil},
|
||||
{"File: add README.md and doc.go", nil, []string{"README.md", "doc.go"}},
|
||||
}
|
||||
m := NewMsg()
|
||||
for _, tt := range tests {
|
||||
t.Run(tt.name, func(t *testing.T) {
|
||||
sort.Strings(tt.embeds)
|
||||
sort.Strings(tt.files)
|
||||
for _, a := range tt.embeds {
|
||||
m.EmbedFile(a, WithFileName(a), nil)
|
||||
}
|
||||
if len(m.embeds) != len(tt.embeds) {
|
||||
t.Errorf("EmbedFile() failed. Number of embedded files expected: %d, got: %d", len(tt.files),
|
||||
len(m.embeds))
|
||||
return
|
||||
}
|
||||
var files []*File
|
||||
for _, f := range tt.files {
|
||||
files = append(files, &File{Name: f})
|
||||
}
|
||||
m.SetEmbeds(files)
|
||||
if len(m.embeds) != len(files) {
|
||||
t.Errorf("SetEmbeds() failed. Number of embedded files expected: %d, got: %d", len(files),
|
||||
len(m.embeds))
|
||||
return
|
||||
}
|
||||
for i, f := range tt.files {
|
||||
if f != m.embeds[i].Name {
|
||||
t.Errorf("SetEmbeds() failed. Embedded file name expected: %s, got: %s", f,
|
||||
m.embeds[i].Name)
|
||||
return
|
||||
}
|
||||
}
|
||||
m.Reset()
|
||||
})
|
||||
}
|
||||
}
|
||||
|
||||
// TestMsg_AttachFromEmbedFS tests the Msg.AttachFromEmbedFS and the WithFilename FileOption method
|
||||
|
||||
func TestMsg_AttachFromEmbedFS(t *testing.T) {
|
||||
tests := []struct {
|
||||
name string
|
||||
file string
|
||||
fn string
|
||||
sf bool
|
||||
}{
|
||||
{"File: README.md", "README.md", "README.md", false},
|
||||
{"File: nonexisting", "", "invalid.file", true},
|
||||
}
|
||||
m := NewMsg()
|
||||
for _, tt := range tests {
|
||||
t.Run(tt.name, func(t *testing.T) {
|
||||
if err := m.AttachFromEmbedFS(tt.file, &efs, WithFileName(tt.fn)); err != nil && !tt.sf {
|
||||
t.Errorf("AttachFromEmbedFS() failed: %s", err)
|
||||
return
|
||||
}
|
||||
if len(m.attachments) != 1 && !tt.sf {
|
||||
t.Errorf("AttachFile() failed. Number of attachments expected: %d, got: %d", 1,
|
||||
len(m.attachments))
|
||||
return
|
||||
}
|
||||
if !tt.sf {
|
||||
file := m.attachments[0]
|
||||
if file == nil {
|
||||
t.Errorf("AttachFile() failed. Attachment file pointer is nil")
|
||||
return
|
||||
}
|
||||
if file.Name != tt.fn {
|
||||
t.Errorf("AttachFile() failed. Filename of attachment expected: %s, got: %s", tt.fn,
|
||||
file.Name)
|
||||
}
|
||||
buf := bytes.Buffer{}
|
||||
if _, err := file.Writer(&buf); err != nil {
|
||||
t.Errorf("failed to execute WriterFunc: %s", err)
|
||||
return
|
||||
}
|
||||
}
|
||||
m.Reset()
|
||||
})
|
||||
}
|
||||
}
|
||||
|
||||
// TestMsg_AttachFileBrokenFunc tests WriterFunc of the Msg.AttachFile method
|
||||
|
||||
func TestMsg_AttachFileBrokenFunc(t *testing.T) {
|
||||
m := NewMsg()
|
||||
m.AttachFile("README.md")
|
||||
if len(m.attachments) != 1 {
|
||||
t.Errorf("AttachFile() failed. Number of attachments expected: %d, got: %d", 1,
|
||||
len(m.attachments))
|
||||
return
|
||||
}
|
||||
file := m.attachments[0]
|
||||
if file == nil {
|
||||
t.Errorf("AttachFile() failed. Attachment file pointer is nil")
|
||||
return
|
||||
}
|
||||
file.Writer = func(io.Writer) (int64, error) {
|
||||
return 0, fmt.Errorf("failing intentionally")
|
||||
}
|
||||
buf := bytes.Buffer{}
|
||||
if _, err := file.Writer(&buf); err == nil {
|
||||
t.Errorf("execute WriterFunc did not fail, but was expected to fail")
|
||||
}
|
||||
}
|
||||
|
||||
// TestMsg_AttachReader tests the Msg.AttachReader method
|
||||
|
||||
func TestMsg_AttachReader(t *testing.T) {
|
||||
m := NewMsg()
|
||||
ts := "This is a test string"
|
||||
rbuf := bytes.Buffer{}
|
||||
rbuf.WriteString(ts)
|
||||
r := bufio.NewReader(&rbuf)
|
||||
if err := m.AttachReader("testfile.txt", r); err != nil {
|
||||
t.Errorf("AttachReader() failed. Expected no error, got: %s", err.Error())
|
||||
return
|
||||
}
|
||||
if len(m.attachments) != 1 {
|
||||
t.Errorf("AttachReader() failed. Number of attachments expected: %d, got: %d", 1,
|
||||
len(m.attachments))
|
||||
return
|
||||
}
|
||||
file := m.attachments[0]
|
||||
if file == nil {
|
||||
t.Errorf("AttachReader() failed. Attachment file pointer is nil")
|
||||
return
|
||||
}
|
||||
if file.Name != "testfile.txt" {
|
||||
t.Errorf("AttachReader() failed. Expected file name: %s, got: %s", "testfile.txt",
|
||||
file.Name)
|
||||
}
|
||||
wbuf := bytes.Buffer{}
|
||||
if _, err := file.Writer(&wbuf); err != nil {
|
||||
t.Errorf("execute WriterFunc failed: %s", err)
|
||||
}
|
||||
if wbuf.String() != ts {
|
||||
t.Errorf("AttachReader() failed. Expected string: %q, got: %q", ts, wbuf.String())
|
||||
}
|
||||
}
|
||||
|
||||
// TestMsg_EmbedFile tests the Msg.EmbedFile and the WithFilename FileOption method
|
||||
|
||||
func TestMsg_EmbedFile(t *testing.T) {
|
||||
tests := []struct {
|
||||
name string
|
||||
file string
|
||||
fn string
|
||||
sf bool
|
||||
}{
|
||||
{"File: README.md", "README.md", "README.md", false},
|
||||
{"File: doc.go", "doc.go", "foo.go", false},
|
||||
{"File: nonexisting", "", "invalid.file", true},
|
||||
}
|
||||
m := NewMsg()
|
||||
for _, tt := range tests {
|
||||
t.Run(tt.name, func(t *testing.T) {
|
||||
m.EmbedFile(tt.file, WithFileName(tt.fn), nil)
|
||||
if len(m.embeds) != 1 && !tt.sf {
|
||||
t.Errorf("EmbedFile() failed. Number of embeds expected: %d, got: %d", 1,
|
||||
len(m.embeds))
|
||||
return
|
||||
}
|
||||
if !tt.sf {
|
||||
file := m.embeds[0]
|
||||
if file == nil {
|
||||
t.Errorf("EmbedFile() failed. Embedded file pointer is nil")
|
||||
return
|
||||
}
|
||||
if file.Name != tt.fn {
|
||||
t.Errorf("EmbedFile() failed. Filename of embeds expected: %s, got: %s", tt.fn,
|
||||
file.Name)
|
||||
}
|
||||
buf := bytes.Buffer{}
|
||||
if _, err := file.Writer(&buf); err != nil {
|
||||
t.Errorf("failed to execute WriterFunc: %s", err)
|
||||
return
|
||||
}
|
||||
}
|
||||
m.Reset()
|
||||
})
|
||||
}
|
||||
}
|
||||
|
||||
// TestMsg_EmbedFromEmbedFS tests the Msg.EmbedFromEmbedFS and the WithFilename FileOption method
|
||||
|
||||
func TestMsg_EmbedFromEmbedFS(t *testing.T) {
|
||||
tests := []struct {
|
||||
name string
|
||||
file string
|
||||
fn string
|
||||
sf bool
|
||||
}{
|
||||
{"File: README.md", "README.md", "README.md", false},
|
||||
{"File: nonexisting", "", "invalid.file", true},
|
||||
}
|
||||
m := NewMsg()
|
||||
for _, tt := range tests {
|
||||
t.Run(tt.name, func(t *testing.T) {
|
||||
if err := m.EmbedFromEmbedFS(tt.file, &efs, WithFileName(tt.fn)); err != nil && !tt.sf {
|
||||
t.Errorf("EmbedFromEmbedFS() failed: %s", err)
|
||||
return
|
||||
}
|
||||
if len(m.embeds) != 1 && !tt.sf {
|
||||
t.Errorf("EmbedFile() failed. Number of embeds expected: %d, got: %d", 1,
|
||||
len(m.embeds))
|
||||
return
|
||||
}
|
||||
if !tt.sf {
|
||||
file := m.embeds[0]
|
||||
if file == nil {
|
||||
t.Errorf("EmbedFile() failed. Embedded file pointer is nil")
|
||||
return
|
||||
}
|
||||
if file.Name != tt.fn {
|
||||
t.Errorf("EmbedFile() failed. Filename of embeds expected: %s, got: %s", tt.fn,
|
||||
file.Name)
|
||||
}
|
||||
buf := bytes.Buffer{}
|
||||
if _, err := file.Writer(&buf); err != nil {
|
||||
t.Errorf("failed to execute WriterFunc: %s", err)
|
||||
return
|
||||
}
|
||||
}
|
||||
m.Reset()
|
||||
})
|
||||
}
|
||||
}
|
||||
|
||||
// TestMsg_EmbedFileBrokenFunc tests WriterFunc of the Msg.EmbedFile method
|
||||
|
||||
func TestMsg_EmbedFileBrokenFunc(t *testing.T) {
|
||||
m := NewMsg()
|
||||
m.EmbedFile("README.md")
|
||||
if len(m.embeds) != 1 {
|
||||
t.Errorf("EmbedFile() failed. Number of embeds expected: %d, got: %d", 1,
|
||||
len(m.embeds))
|
||||
return
|
||||
}
|
||||
file := m.embeds[0]
|
||||
if file == nil {
|
||||
t.Errorf("EmbedFile() failed. Embedded file pointer is nil")
|
||||
return
|
||||
}
|
||||
file.Writer = func(io.Writer) (int64, error) {
|
||||
return 0, fmt.Errorf("failing intentionally")
|
||||
}
|
||||
buf := bytes.Buffer{}
|
||||
if _, err := file.Writer(&buf); err == nil {
|
||||
t.Errorf("execute WriterFunc did not fail, but was expected to fail")
|
||||
}
|
||||
}
|
||||
|
||||
// TestMsg_EmbedReader tests the Msg.EmbedReader method
|
||||
|
||||
func TestMsg_EmbedReader(t *testing.T) {
|
||||
m := NewMsg()
|
||||
ts := "This is a test string"
|
||||
rbuf := bytes.Buffer{}
|
||||
rbuf.WriteString(ts)
|
||||
r := bufio.NewReader(&rbuf)
|
||||
if err := m.EmbedReader("testfile.txt", r); err != nil {
|
||||
t.Errorf("EmbedReader() failed. Expected no error, got: %s", err.Error())
|
||||
return
|
||||
}
|
||||
if len(m.embeds) != 1 {
|
||||
t.Errorf("EmbedReader() failed. Number of embeds expected: %d, got: %d", 1,
|
||||
len(m.embeds))
|
||||
return
|
||||
}
|
||||
file := m.embeds[0]
|
||||
if file == nil {
|
||||
t.Errorf("EmbedReader() failed. Embedded file pointer is nil")
|
||||
return
|
||||
}
|
||||
if file.Name != "testfile.txt" {
|
||||
t.Errorf("EmbedReader() failed. Expected file name: %s, got: %s", "testfile.txt",
|
||||
file.Name)
|
||||
}
|
||||
wbuf := bytes.Buffer{}
|
||||
if _, err := file.Writer(&wbuf); err != nil {
|
||||
t.Errorf("execute WriterFunc failed: %s", err)
|
||||
}
|
||||
if wbuf.String() != ts {
|
||||
t.Errorf("EmbedReader() failed. Expected string: %q, got: %q", ts, wbuf.String())
|
||||
}
|
||||
}
|
||||
|
||||
// TestMsg_hasAlt tests the hasAlt() method of the Msg
|
||||
|
||||
func TestMsg_hasAlt(t *testing.T) {
|
||||
|
|
Loading…
Reference in a new issue