config: validate that RawConfig.Copy doesn't copy the interpolated
values
This commit is contained in:
parent
966f5b920d
commit
14b371d533
|
@ -382,6 +382,59 @@ func TestRawConfig_sliceIndexLoss(t *testing.T) {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func TestRawConfigCopy(t *testing.T) {
|
||||||
|
raw := map[string]interface{}{
|
||||||
|
"foo": "${var.bar}",
|
||||||
|
}
|
||||||
|
|
||||||
|
rc, err := NewRawConfig(raw)
|
||||||
|
if err != nil {
|
||||||
|
t.Fatalf("err: %s", err)
|
||||||
|
}
|
||||||
|
|
||||||
|
rc.Key = "foo"
|
||||||
|
if rc.Value() != "${var.bar}" {
|
||||||
|
t.Fatalf("err: %#v", rc.Value())
|
||||||
|
}
|
||||||
|
|
||||||
|
// Interpolate the first one
|
||||||
|
vars := map[string]ast.Variable{
|
||||||
|
"var.bar": ast.Variable{
|
||||||
|
Value: "baz",
|
||||||
|
Type: ast.TypeString,
|
||||||
|
},
|
||||||
|
}
|
||||||
|
if err := rc.Interpolate(vars); err != nil {
|
||||||
|
t.Fatalf("err: %s", err)
|
||||||
|
}
|
||||||
|
|
||||||
|
if rc.Value() != "baz" {
|
||||||
|
t.Fatalf("bad: %#v", rc.Value())
|
||||||
|
}
|
||||||
|
|
||||||
|
// Copy and interpolate
|
||||||
|
{
|
||||||
|
rc2 := rc.Copy()
|
||||||
|
if rc2.Value() != "${var.bar}" {
|
||||||
|
t.Fatalf("err: %#v", rc2.Value())
|
||||||
|
}
|
||||||
|
|
||||||
|
vars := map[string]ast.Variable{
|
||||||
|
"var.bar": ast.Variable{
|
||||||
|
Value: "qux",
|
||||||
|
Type: ast.TypeString,
|
||||||
|
},
|
||||||
|
}
|
||||||
|
if err := rc2.Interpolate(vars); err != nil {
|
||||||
|
t.Fatalf("err: %s", err)
|
||||||
|
}
|
||||||
|
|
||||||
|
if rc2.Value() != "qux" {
|
||||||
|
t.Fatalf("bad: %#v", rc2.Value())
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
func TestRawConfigValue(t *testing.T) {
|
func TestRawConfigValue(t *testing.T) {
|
||||||
raw := map[string]interface{}{
|
raw := map[string]interface{}{
|
||||||
"foo": "${var.bar}",
|
"foo": "${var.bar}",
|
||||||
|
|
Loading…
Reference in New Issue