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)
|
|
|
|
|
}
|