2023-06-22 09:36:43 +00:00
|
|
|
package initialize_test
|
|
|
|
|
|
|
|
import (
|
|
|
|
"testing"
|
|
|
|
"time"
|
|
|
|
|
2024-11-20 14:26:08 +00:00
|
|
|
"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:40:21 +00:00
|
|
|
ClientHttpURL: "localhost:8080",
|
|
|
|
AdminHttpURL: "localhost:8081",
|
|
|
|
GrpcURL: "localhost:8081",
|
|
|
|
GrpcDomain: "domain",
|
|
|
|
AuthMicroserviceURL: defaultAuthURL,
|
|
|
|
KafkaTopicTariff: "topic",
|
|
|
|
KafkaBrokers: []string{"localhost:8080", "localhost:8081"},
|
|
|
|
HubadminMicroserviceURL: defaultHubAdminURL,
|
|
|
|
CurrencyMicroserviceURL: defaultCurrencyURL,
|
|
|
|
DiscountMicroserviceGRPC: "domen",
|
|
|
|
PaymentMicroserviceGRPC: "domen",
|
|
|
|
VerificationMicroservice: "domen",
|
|
|
|
TemplategenMicroserviceURL: "domen",
|
2024-11-27 10:17:36 +00:00
|
|
|
ExternalCfg: models.ExternalCfg{
|
|
|
|
JwtCfg: models.JWTConfiguration{
|
2024-12-06 12:40:21 +00:00
|
|
|
PrivateKey: "jwt private key",
|
|
|
|
PublicKey: "jwt public key",
|
|
|
|
Issuer: "issuer",
|
|
|
|
Audience: "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:40:21 +00:00
|
|
|
t.Setenv("JWT_PUBLIC_KEY", defaultConfiguration.ExternalCfg.JwtCfg.PublicKey)
|
|
|
|
t.Setenv("JWT_PRIVATE_KEY", defaultConfiguration.ExternalCfg.JwtCfg.PrivateKey)
|
|
|
|
t.Setenv("JWT_ISSUER", defaultConfiguration.ExternalCfg.JwtCfg.Issuer)
|
|
|
|
t.Setenv("JWT_AUDIENCE", defaultConfiguration.ExternalCfg.JwtCfg.Audience)
|
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)
|
|
|
|
|
2024-12-06 12:40:21 +00:00
|
|
|
t.Setenv("AUTH_MICROSERVICE_URL", defaultConfiguration.AuthMicroserviceURL)
|
|
|
|
t.Setenv("HUBADMIN_MICROSERVICE_URL", defaultConfiguration.HubadminMicroserviceURL)
|
|
|
|
t.Setenv("CURRENCY_MICROSERVICE_URL", defaultConfiguration.CurrencyMicroserviceURL)
|
|
|
|
t.Setenv("DISCOUNT_MICROSERVICE_GRPC_URL", defaultConfiguration.DiscountMicroserviceGRPC)
|
|
|
|
t.Setenv("PAYMENT_MICROSERVICE_GRPC_URL", defaultConfiguration.PaymentMicroserviceGRPC)
|
|
|
|
t.Setenv("VERIFICATION_MICROSERVICE_URL", defaultConfiguration.VerificationMicroservice)
|
|
|
|
t.Setenv("TEMPLATEGEN_MICROSERVICE_URL", defaultConfiguration.TemplategenMicroserviceURL)
|
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
|
|
|
|
}
|