Skip to content

Commit 5475d4a

Browse files
committed
Improved handling of incomplete configs array
1 parent 9fbc4ad commit 5475d4a

File tree

2 files changed

+9
-1
lines changed

2 files changed

+9
-1
lines changed

internal/go-configmap/configuration.go

+1-1
Original file line numberDiff line numberDiff line change
@@ -97,7 +97,7 @@ func tryConversion(current any, desiredType reflect.Type) (any, error) {
9797
}
9898
case reflect.Array, reflect.Slice:
9999
currentArray, ok := current.([]any)
100-
if !ok {
100+
if !ok && current != nil {
101101
break
102102
}
103103
for i, elem := range currentArray {

internal/integrationtest/config/config_test.go

+8
Original file line numberDiff line numberDiff line change
@@ -893,4 +893,12 @@ build.unk: 123
893893
out, _, err = cli.Run("config", "get", "locale", "--config-file", invalidConfig.String())
894894
require.NoError(t, err)
895895
require.Equal(t, "en", strings.TrimSpace(string(out)))
896+
897+
// Run "config get" with a configuration contatinng a null array
898+
nullArrayConfig := paths.New(filepath.Join(tmp, "null_array.yaml"))
899+
nullArrayConfig.WriteFile([]byte(`board_manager.additional_urls:`))
900+
t.Cleanup(func() { nullArrayConfig.Remove() })
901+
out, _, err = cli.Run("config", "get", "locale", "--config-file", invalidConfig.String())
902+
require.NoError(t, err)
903+
require.Equal(t, "en", strings.TrimSpace(string(out)))
896904
}

0 commit comments

Comments
 (0)