From a946f769acff99dabb8d7c482c8eb8110e947321 Mon Sep 17 00:00:00 2001 From: "Urko." Date: Sat, 21 Oct 2023 20:56:32 +0200 Subject: [PATCH] feat: expose mock email service function --- pkg/email/email_test.go | 15 +-------------- pkg/email/mock.go | 41 +++++++++++++++++++++++++++++------------ 2 files changed, 30 insertions(+), 26 deletions(-) diff --git a/pkg/email/email_test.go b/pkg/email/email_test.go index a194ee3..34cdf88 100755 --- a/pkg/email/email_test.go +++ b/pkg/email/email_test.go @@ -1,7 +1,6 @@ package email import ( - "crypto/tls" "fmt" "net/smtp" "os" @@ -44,19 +43,7 @@ func TestNewConfig_MissingEnvFile(t *testing.T) { } func TestMockSendEmail(t *testing.T) { - service := &EmailService{ - auth: smtp.PlainAuth("", "", "", ""), - host: "", - port: "", - from: "", - tlsconfig: &tls.Config{ - InsecureSkipVerify: true, - ServerName: "", - }, - dial: func(hostPort string) (SMTPClientIface, error) { - return &MockSMTP{}, nil - }, - } + service := NewMockMailService() emailData := EmailMessage{ To: "test@example.com", diff --git a/pkg/email/mock.go b/pkg/email/mock.go index 304ea24..3920661 100644 --- a/pkg/email/mock.go +++ b/pkg/email/mock.go @@ -6,36 +6,53 @@ import ( "net/smtp" ) -type MockWriter struct{} +func NewMockMailService() *EmailService { + return &EmailService{ + auth: smtp.PlainAuth("", "", "", ""), + host: "", + port: "", + from: "", + tlsconfig: &tls.Config{ + InsecureSkipVerify: true, + ServerName: "", + }, + dial: func(hostPort string) (SMTPClientIface, error) { + return &mockSMTP{}, nil + }, + } -func (w *MockWriter) Close() error { +} + +type mockWriter struct{} + +func (w *mockWriter) Close() error { return nil } -func (w *MockWriter) Write(p []byte) (n int, err error) { +func (w *mockWriter) Write(p []byte) (n int, err error) { return 10, nil } // Mock SMTP Client -type MockSMTP struct{} +type mockSMTP struct{} -func (m *MockSMTP) StartTLS(*tls.Config) error { +func (m *mockSMTP) StartTLS(*tls.Config) error { return nil } -func (m *MockSMTP) Auth(a smtp.Auth) error { +func (m *mockSMTP) Auth(a smtp.Auth) error { return nil } -func (m *MockSMTP) Close() error { +func (m *mockSMTP) Close() error { return nil } -func (m *MockSMTP) Data() (io.WriteCloser, error) { - return &MockWriter{}, nil +func (m *mockSMTP) Data() (io.WriteCloser, error) { + return &mockWriter{}, nil } -func (m *MockSMTP) Mail(from string) error { +func (m *mockSMTP) Mail(from string) error { return nil } -func (m *MockSMTP) Quit() error { +func (m *mockSMTP) Quit() error { return nil } -func (m *MockSMTP) Rcpt(to string) error { +func (m *mockSMTP) Rcpt(to string) error { return nil }