diff --git a/internal/config/config.go b/internal/config/config.go index b49a4241d3b9d8e44eaaa52d465ef54d7e46a9e2..5f32cec526799d894e7988b15cf1dc1cd42842b7 100644 --- a/internal/config/config.go +++ b/internal/config/config.go @@ -35,7 +35,8 @@ import ( const ( defaultConfig = "config.yml" - testFilePath = "testdata/test_config.yml" + testFilePath = "testdata/" + APP_ENV_NAME = "APP_ENV" ) type Config struct { @@ -62,8 +63,8 @@ func LoadConfig(configFilePath ...string) Config { var config Config configFile := defaultConfig - - env := os.Getenv("APP_ENV") + + env := os.Getenv(APP_ENV_NAME) if env != "" { configFile = fmt.Sprintf("config-%s.yml", env) } @@ -72,8 +73,8 @@ func LoadConfig(configFilePath ...string) Config { if len(configFilePath) > 0 { fp = configFilePath[0] - } else if testing.Testing() { - fp = testFilePath + } else if testing.Testing() { + fp = testFilePath+configFile } file, err := os.ReadFile(fp) diff --git a/internal/config/config_test.go b/internal/config/config_test.go index 8a66f9ffd6964e299ed32d8da06359992b2f5118..106bf2c0b900b64ce30d1eb155f105691b647e6c 100644 --- a/internal/config/config_test.go +++ b/internal/config/config_test.go @@ -28,10 +28,11 @@ package config import ( "testing" "github.com/stretchr/testify/assert" + "os" ) func TestLoadConfig(t *testing.T) { - t.Run("should load config from file", func(t *testing.T) { + t.Run("should load default config from file", func(t *testing.T) { config := LoadConfig() expectedConfig := Config{} @@ -44,4 +45,22 @@ func TestLoadConfig(t *testing.T) { assert.Equal(t, expectedConfig, config) }) + t.Run("should load local config", func(t *testing.T) { + os.Setenv(APP_ENV_NAME, "local") + defer os.Unsetenv(APP_ENV_NAME) + + config := LoadConfig() + + assert.NoError(t, os.Unsetenv(APP_ENV_NAME), "Unsetenv "+APP_ENV_NAME+" should not return an error") + + expectedConfig := Config{} + expectedConfig.Grpc.Server.Mock = true + expectedConfig.Http.Server.Port = 8082 + expectedConfig.Grpc.Server.Port = 50052 + expectedConfig.Grpc.Router.Port = 50051 + expectedConfig.Logging.Level = "INFO" + + assert.Equal(t, expectedConfig, config) + }) + } diff --git a/internal/config/testdata/config-local.yml b/internal/config/testdata/config-local.yml new file mode 100755 index 0000000000000000000000000000000000000000..4bb9e1b97cad20d21be2e4d675b4c46afb2f403a --- /dev/null +++ b/internal/config/testdata/config-local.yml @@ -0,0 +1,11 @@ +http: + server: + port: 8082 +grpc: + server: + mock: true + port: 50052 + router: + port: 50051 +logging: + level: "INFO" \ No newline at end of file diff --git a/internal/config/testdata/test_config.yml b/internal/config/testdata/config.yml old mode 100644 new mode 100755 similarity index 100% rename from internal/config/testdata/test_config.yml rename to internal/config/testdata/config.yml diff --git a/internal/logging/testdata/test_config.yml b/internal/logging/testdata/config.yml old mode 100644 new mode 100755 similarity index 100% rename from internal/logging/testdata/test_config.yml rename to internal/logging/testdata/config.yml diff --git a/internal/server/testdata/test_config.yml b/internal/mock/testdata/config.yml old mode 100644 new mode 100755 similarity index 85% rename from internal/server/testdata/test_config.yml rename to internal/mock/testdata/config.yml index 01b9aeceb6061b7b5637792a6724a119fa4466e8..c82f00915da1dac6dc64101fcec262d984848323 --- a/internal/server/testdata/test_config.yml +++ b/internal/mock/testdata/config.yml @@ -7,4 +7,4 @@ grpc: router: port: 50051 logging: - level: "DEBUG" \ No newline at end of file + level: "INFO" \ No newline at end of file diff --git a/internal/mock/testdata/test_config.yml b/internal/server/testdata/config.yml old mode 100644 new mode 100755 similarity index 100% rename from internal/mock/testdata/test_config.yml rename to internal/server/testdata/config.yml