customer/internal/initialize/config_test.go

111 lines
3.7 KiB
Go
Raw Normal View History

2023-06-22 09:36:43 +00:00
package initialize_test
import (
"testing"
"time"
"gitea.pena/PenaSide/common/mongo"
2024-11-26 15:28:42 +00:00
"gitea.pena/PenaSide/customer/internal/initialize"
"gitea.pena/PenaSide/customer/internal/models"
2023-06-22 09:36:43 +00:00
"github.com/golang-jwt/jwt/v5"
"github.com/stretchr/testify/assert"
)
func TestConfiguration(t *testing.T) {
t.Run("Успешная инициализация конфигурации", func(t *testing.T) {
defaultConfiguration := setDefaultTestingENV(t)
assert.NotPanics(t, func() {
configuration, err := initialize.Configuration("")
assert.NoError(t, err)
assert.Equal(t, defaultConfiguration, configuration)
})
})
t.Run("Ошибка при наличии кривого url", func(t *testing.T) {
setDefaultTestingENV(t)
t.Setenv("AUTH_MICROSERVICE_USER_URL", "url")
assert.NotPanics(t, func() {
configuration, err := initialize.Configuration("")
assert.Error(t, err)
assert.Nil(t, configuration)
})
})
t.Run("Ошибка при отсутствии обязательного env", func(t *testing.T) {
assert.NotPanics(t, func() {
configuration, err := initialize.Configuration("")
assert.Error(t, err)
assert.Nil(t, configuration)
})
})
}
func setDefaultTestingENV(t *testing.T) *models.Config {
t.Helper()
2024-11-26 15:28:42 +00:00
defaultAuthURL := "http://www.auth.ru/user"
2023-06-22 09:36:43 +00:00
2024-11-26 15:28:42 +00:00
defaultHubAdminURL := "http://www.hubadmin.ru/tariff"
2023-06-22 09:36:43 +00:00
2024-11-26 15:28:42 +00:00
defaultCurrencyURL := "http://www.currency.ru/change"
2023-06-22 09:36:43 +00:00
defaultConfiguration := models.Config{
2024-12-06 12:23:44 +00:00
ClientHttpURL: "localhost:8080",
AdminHttpURL: "localhost:8081",
GrpcURL: "localhost:8081",
GrpcDomain: "domain",
AuthServiceURL: defaultAuthURL,
KafkaTopicTariff: "topic",
KafkaBrokers: []string{"localhost:8080", "localhost:8081"},
HubadminServiceURL: defaultHubAdminURL,
CurrencyServiceURL: defaultCurrencyURL,
DiscountServiceGRPCURL: "domen",
PaymentServiceGRPCURL: "domen",
VerificationServiceURL: "domen",
TemplategenServiceURL: "domen",
2024-11-27 10:17:36 +00:00
ExternalCfg: models.ExternalCfg{
JwtCfg: models.JWTConfiguration{
2024-12-06 12:23:44 +00:00
JwtPrivateKey: "jwt private key",
JwtPublicKey: "jwt public key",
JwtIssuer: "issuer",
JwtAudience: "audience",
Algorithm: *jwt.SigningMethodRS256,
ExpiresIn: 15 * time.Minute,
2024-11-27 10:17:36 +00:00
},
Database: mongo.Configuration{
2024-11-28 16:14:53 +00:00
URL: "mongodb://test:test@localhost:27020/",
2024-11-27 10:17:36 +00:00
DatabaseName: "db",
},
2023-06-22 09:36:43 +00:00
},
}
2024-12-06 12:23:44 +00:00
t.Setenv("GRPC_URL", defaultConfiguration.GrpcURL)
t.Setenv("GRPC_DOMAIN", defaultConfiguration.GrpcDomain)
2023-06-22 09:36:43 +00:00
2024-12-06 12:23:44 +00:00
t.Setenv("JWT_PUBLIC_KEY", defaultConfiguration.ExternalCfg.JwtCfg.JwtPublicKey)
t.Setenv("JWT_PRIVATE_KEY", defaultConfiguration.ExternalCfg.JwtCfg.JwtPrivateKey)
t.Setenv("JWT_ISSUER", defaultConfiguration.ExternalCfg.JwtCfg.JwtIssuer)
t.Setenv("JWT_AUDIENCE", defaultConfiguration.ExternalCfg.JwtCfg.JwtAudience)
2023-06-22 09:36:43 +00:00
2023-07-07 01:57:06 +00:00
t.Setenv("KAFKA_BROKERS", "localhost:8080,localhost:8081")
2024-12-06 12:23:44 +00:00
t.Setenv("KAFKA_TOPIC_TARIFF", defaultConfiguration.KafkaTopicTariff)
t.Setenv("AUTH_SERVICE_URL", defaultConfiguration.AuthServiceURL)
t.Setenv("HUBADMIN_SERVICE_URL", defaultConfiguration.HubadminServiceURL)
t.Setenv("CURRENCY_SERVICE_URL", defaultConfiguration.CurrencyServiceURL)
t.Setenv("DISCOUNT_SERVICE_GRPC_URL", defaultConfiguration.DiscountServiceGRPCURL)
t.Setenv("PAYMENT_SERVICE_GRPC_URL", defaultConfiguration.PaymentServiceGRPCURL)
t.Setenv("VERIFICATION_SERVICE_URL", defaultConfiguration.VerificationServiceURL)
t.Setenv("TEMPLATEGEN_SERVICE_URL", defaultConfiguration.TemplategenServiceURL)
2023-06-22 09:36:43 +00:00
2024-11-28 16:14:53 +00:00
t.Setenv("MONGO_URL", defaultConfiguration.ExternalCfg.Database.URL)
2024-11-27 10:17:36 +00:00
t.Setenv("MONGO_DB_NAME", defaultConfiguration.ExternalCfg.Database.DatabaseName)
2023-06-22 09:36:43 +00:00
return &defaultConfiguration
}