From ba4b336dfab2ddc64f9a9063d96054ca0a03437b Mon Sep 17 00:00:00 2001 From: Russell Troxel Date: Tue, 21 Mar 2023 09:16:53 -0700 Subject: [PATCH] Fix #128: Get ApiVersion from defaults, not XMLConfig (#131) Signed-off-by: Russell Troxel --- internal/config/config_test.go | 34 ++++++++++++++++++++++++++++++++++ internal/config/xml_parser.go | 1 - 2 files changed, 34 insertions(+), 1 deletion(-) diff --git a/internal/config/config_test.go b/internal/config/config_test.go index 9a7a658..858e627 100644 --- a/internal/config/config_test.go +++ b/internal/config/config_test.go @@ -109,6 +109,32 @@ func TestLoadConfig_Environment(t *testing.T) { require.Equal("v3", config.ApiVersion) } +func TestLoadConfig_PartialEnvironment(t *testing.T) { + flags := testFlagSet() + flags.Set("url", "http://localhost:8989") + flags.Set("interface", "1.2.3.4") + + t.Setenv("API_KEY", "abcdef0123456789abcdef0123456789") + t.Setenv("PORT", "1234") + + require := require.New(t) + config, err := LoadConfig(flags) + require.NoError(err) + + // Env + require.Equal("http://localhost:8989", config.URL) + require.Equal("1.2.3.4", config.Interface) + + // Flags + require.Equal("abcdef0123456789abcdef0123456789", config.ApiKey) + require.Equal(1234, config.Port) + + // Defaults + require.Equal("v3", config.ApiVersion) + require.Equal("info", config.LogLevel) + require.Equal("console", config.LogFormat) +} + func TestLoadConfig_BackwardsCompatibility_ApiKeyFile(t *testing.T) { require := require.New(t) @@ -151,6 +177,14 @@ func TestLoadConfig_XMLConfig(t *testing.T) { require.Equal("http://localhost:7878/asdf", config.URL) require.Equal("abcdef0123456789abcdef0123456789", config.ApiKey) + + // test defaults survive when not set in config + require.Equal("info", config.LogLevel) + require.Equal("console", config.LogFormat) + require.Equal("v3", config.ApiVersion) + require.Equal(8081, config.Port) + require.Equal("0.0.0.0", config.Interface) + } func TestLoadConfig_ApiKeyFile(t *testing.T) { diff --git a/internal/config/xml_parser.go b/internal/config/xml_parser.go index 8d99dd7..5f2f58c 100644 --- a/internal/config/xml_parser.go +++ b/internal/config/xml_parser.go @@ -38,7 +38,6 @@ func (p *XML) Marshal(o map[string]interface{}) ([]byte, error) { func (p *XML) Merge(src, dest map[string]interface{}) error { dest["api-key"] = src["api-key"] - dest["api-version"] = src["api-version"] u, err := url.Parse(dest["url"].(string)) if err != nil {