From b65cccafa2669dc3d816d40c3f4c84ee03ee5079 Mon Sep 17 00:00:00 2001 From: evanebb Date: Fri, 23 May 2025 12:20:13 +0200 Subject: [PATCH] Add test for inlined structs to configuration package Signed-off-by: evanebb --- configuration/configuration_test.go | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/configuration/configuration_test.go b/configuration/configuration_test.go index b0fe3c08e..514d8132a 100644 --- a/configuration/configuration_test.go +++ b/configuration/configuration_test.go @@ -456,6 +456,21 @@ func (suite *ConfigSuite) TestParseEnvMany() { suite.Require().NoError(err) } +// TestParseEnvInlinedStruct tests whether environment variables are properly matched to fields in inlined structs. +func (suite *ConfigSuite) TestParseEnvInlinedStruct() { + suite.expectedConfig.Redis.Options.Username = "bob" + suite.expectedConfig.Redis.Options.Password = "password123" + + // Test without inlined struct name in the env variable name + suite.T().Setenv("REGISTRY_REDIS_USERNAME", "bob") + // Test with the inlined struct name in the env variable name, for backward compatibility + suite.T().Setenv("REGISTRY_REDIS_OPTIONS_PASSWORD", "password123") + + config, err := Parse(bytes.NewReader([]byte(configYamlV0_1))) + suite.Require().NoError(err) + suite.Require().Equal(suite.expectedConfig, config) +} + func checkStructs(tt *testing.T, t reflect.Type, structsChecked map[string]struct{}) { tt.Helper()