core/tests/smtp_test.go

159 lines
3.7 KiB
Go
Raw Normal View History

2024-03-13 17:23:27 +00:00
package tests
import (
_ "embed"
2025-02-24 17:06:12 +00:00
"gitea.pena/SQuiz/common/clients"
"gitea.pena/SQuiz/common/model"
2024-03-13 17:23:27 +00:00
"github.com/gofiber/fiber/v2"
"github.com/pioz/faker"
"github.com/stretchr/testify/assert"
"testing"
"time"
)
//go:embed mail/to_client.tmpl
var toClientTemplate string
//go:embed mail/reminder.tmpl
var reminderTemplate string
func TestProcessMessageToSMTP(t *testing.T) {
2025-02-24 17:06:12 +00:00
clientDeps := clients.Deps{
SmtpHost: "connect.mailclient.bz",
SmtpPort: "587",
SmtpSender: "skeris@mailing.pena.digital",
2024-03-13 17:23:27 +00:00
ApiKey: "P0YsjUB137upXrr1NiJefHmXVKW1hmBWlpev",
FiberClient: &fiber.Client{},
2025-02-24 17:06:12 +00:00
SmtpApiUrl: "",
2024-03-13 17:23:27 +00:00
}
2025-02-24 17:06:12 +00:00
client := clients.NewSmtpClient(clientDeps)
2024-03-13 17:23:27 +00:00
recipient := "mullinp@internet.ru"
subject := "Test"
data := mailclient.EmailTemplateData{
QuizConfig: model.ResultInfo{
Theme: "Taemplste Quiz",
},
AnswerContent: model.ResultContent{
Name: "Pasha",
Phone: "+723456789",
Email: "test@example.com",
//Adress: "chtoto tam",
Telegram: "@test",
Wechat: "test_wechat",
Viber: "+723456789",
Vk: "test_vk",
Skype: "test_skype",
Whatsup: "test_whatsup",
Messenger: "test_messenger",
},
AllAnswers: []model.ResultAnswer{
{QuestionID: 1, Content: "Pasha"},
{QuestionID: 2, Content: "From a friend"},
},
QuestionsMap: map[uint64]string{
2: "How did you hear about us?",
},
AnswerTime: time.Now().Format("Monday, 2 January 2006 г., 15:04 UTC-07:00"),
}
err := client.SendMailWithAttachment(recipient, subject, toClientTemplate, data, nil)
if err != nil {
t.Errorf("Error sending email: %v", err)
}
}
func TestProcessReminderToClient(t *testing.T) {
clientDeps := mailclient.ClientDeps{
Host: "connect.mailclient.bz",
Port: "587",
Sender: "skeris@mailing.pena.digital",
Auth: &mailclient.PlainAuth{Username: "kotilion.95@gmail.com", Password: "vWwbCSg4bf0p"},
ApiKey: "P0YsjUB137upXrr1NiJefHmXVKW1hmBWlpev",
FiberClient: &fiber.Client{},
}
client := mailclient.NewClient(clientDeps)
recipient := "mullinp@internet.ru"
subject := "Test Reminder"
quizConfig := model.ResultInfo{
ReplName: "Test Quiz",
Reply: "mullinp@internet.ru",
Theme: "Reminder Theme",
}
err := client.SendMailWithAttachment(recipient, subject, reminderTemplate, mailclient.EmailTemplateData{
QuizConfig: quizConfig,
AnswerContent: model.ResultContent{},
AllAnswers: []model.ResultAnswer{},
QuestionsMap: nil,
}, nil)
if err != nil {
t.Errorf("Error sending email: %v", err)
}
}
func TestProcessMessageToClient(t *testing.T) {
smtpData := mailclient.ClientDeps{
Host: "connect.mailclient.bz",
Port: "587",
Sender: "skeris@mailing.pena.digital",
Auth: &mailclient.PlainAuth{Username: "kotilion.95@gmail.com", Password: "vWwbCSg4bf0p"},
ApiKey: "P0YsjUB137upXrr1NiJefHmXVKW1hmBWlpev",
FiberClient: &fiber.Client{},
}
mailClient := mailclient.NewClient(smtpData)
deps := answerwc.DepsSendToClient{
Redis: nil,
Dal: nil,
MailClient: mailClient,
}
errChan := make(chan<- error)
w := answerwc.NewSendToClient(deps, nil, errChan)
quizConfig := model.QuizConfig{
Mailing: model.ResultInfo{
Theme: faker.String(),
},
}
questionsMap := map[uint64]string{
1: faker.String(),
2: faker.String(),
}
account := model.Account{
Email: "mullinp@internet.ru",
}
allAnswers := []model.ResultAnswer{
{
AnswerID: 1,
QuestionID: 1,
},
{
AnswerID: 2,
QuestionID: 2,
},
}
answerContent := model.ResultContent{}
answerTime := time.Now()
err := w.ProcessMessageToClient(quizConfig, questionsMap, account, allAnswers, answerContent, answerTime)
assert.NoError(t, err)
}