58 lines
1.1 KiB
Go
58 lines
1.1 KiB
Go
package tests
|
|
|
|
import (
|
|
"context"
|
|
"github.com/pioz/faker"
|
|
"go.uber.org/zap"
|
|
"log"
|
|
"penahub.gitlab.yandexcloud.net/backend/quiz/core/initialize"
|
|
"penahub.gitlab.yandexcloud.net/backend/quiz/core/internal/brokers"
|
|
"testing"
|
|
"time"
|
|
)
|
|
|
|
func Test_MailNotify(t *testing.T) {
|
|
ctx := context.Background()
|
|
logger, err := zap.NewProduction()
|
|
if err != nil {
|
|
log.Fatal(err.Error())
|
|
}
|
|
kafkaClient, err := initialize.KafkaInit(ctx, initialize.KafkaDeps{
|
|
KafkaTopic: "test-topic",
|
|
KafkaBrokers: "localhost:9092",
|
|
KafkaGroup: "mailnotifier",
|
|
})
|
|
|
|
if err != nil {
|
|
log.Fatal(err.Error())
|
|
}
|
|
|
|
producer := brokers.NewProducer(brokers.ProducerDeps{
|
|
KafkaClient: kafkaClient,
|
|
Logger: logger,
|
|
})
|
|
|
|
ch := make(chan brokers.Message)
|
|
|
|
go func() {
|
|
for m := range ch {
|
|
err := producer.ToMailNotify(ctx, m)
|
|
if err != nil {
|
|
log.Fatal(err.Error())
|
|
}
|
|
}
|
|
}()
|
|
|
|
for i := 0; i < 2; i++ {
|
|
ch <- brokers.Message{
|
|
AccountID: faker.String(),
|
|
Email: "pashamullin202@gmail.com",
|
|
ServiceKey: "squiz",
|
|
SendAt: time.Now(),
|
|
}
|
|
time.Sleep(time.Second)
|
|
}
|
|
|
|
close(ch)
|
|
}
|