From 5ecd088d0a85e6da14dc3c998c7167c9f4dc9a06 Mon Sep 17 00:00:00 2001 From: OZGCloud <ozgcloud@mgm-tp.com> Date: Thu, 14 Nov 2024 12:13:56 +0100 Subject: [PATCH] OZG-6747 update/add unittests for config --- internal/config/config.go | 11 +++++----- internal/config/config_test.go | 21 ++++++++++++++++++- internal/config/testdata/config-local.yml | 11 ++++++++++ .../testdata/{test_config.yml => config.yml} | 0 .../testdata/{test_config.yml => config.yml} | 0 .../testdata/config.yml} | 2 +- .../testdata/config.yml} | 0 7 files changed, 38 insertions(+), 7 deletions(-) create mode 100755 internal/config/testdata/config-local.yml rename internal/config/testdata/{test_config.yml => config.yml} (100%) mode change 100644 => 100755 rename internal/logging/testdata/{test_config.yml => config.yml} (100%) mode change 100644 => 100755 rename internal/{server/testdata/test_config.yml => mock/testdata/config.yml} (85%) mode change 100644 => 100755 rename internal/{mock/testdata/test_config.yml => server/testdata/config.yml} (100%) mode change 100644 => 100755 diff --git a/internal/config/config.go b/internal/config/config.go index b49a424..5f32cec 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 8a66f9f..106bf2c 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 0000000..4bb9e1b --- /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 01b9aec..c82f009 --- 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 -- GitLab