diff --git a/config/raw_config_test.go b/config/raw_config_test.go index 2df9aef625..70ae968e6c 100644 --- a/config/raw_config_test.go +++ b/config/raw_config_test.go @@ -304,6 +304,41 @@ func TestRawConfig_unknownPartial(t *testing.T) { } } +func TestRawConfig_unknownPartialList(t *testing.T) { + raw := map[string]interface{}{ + "foo": []interface{}{ + "${var.bar}/32", + }, + } + + rc, err := NewRawConfig(raw) + if err != nil { + t.Fatalf("err: %s", err) + } + + vars := map[string]ast.Variable{ + "var.bar": ast.Variable{ + Value: UnknownVariableValue, + Type: ast.TypeUnknown, + }, + } + if err := rc.Interpolate(vars); err != nil { + t.Fatalf("err: %s", err) + } + + actual := rc.Config() + expected := map[string]interface{}{"foo": []interface{}{UnknownVariableValue}} + + if !reflect.DeepEqual(actual, expected) { + t.Fatalf("bad: %#v", actual) + } + + expectedKeys := []string{"foo"} + if !reflect.DeepEqual(rc.UnknownKeys(), expectedKeys) { + t.Fatalf("bad: %#v", rc.UnknownKeys()) + } +} + func TestRawConfigValue(t *testing.T) { raw := map[string]interface{}{ "foo": "${var.bar}",