helper/schema: test cases around unknown variable values
This commit is contained in:
parent
08dbf4daf0
commit
3a6940d715
|
@ -13,6 +13,7 @@ func TestSchemaMap_Diff(t *testing.T) {
|
||||||
Schema map[string]*Schema
|
Schema map[string]*Schema
|
||||||
State *terraform.ResourceState
|
State *terraform.ResourceState
|
||||||
Config map[string]interface{}
|
Config map[string]interface{}
|
||||||
|
ConfigVariables map[string]string
|
||||||
Diff *terraform.ResourceDiff
|
Diff *terraform.ResourceDiff
|
||||||
Err bool
|
Err bool
|
||||||
}{
|
}{
|
||||||
|
@ -129,6 +130,68 @@ func TestSchemaMap_Diff(t *testing.T) {
|
||||||
Err: false,
|
Err: false,
|
||||||
},
|
},
|
||||||
|
|
||||||
|
// Variable (just checking)
|
||||||
|
{
|
||||||
|
Schema: map[string]*Schema{
|
||||||
|
"availability_zone": &Schema{
|
||||||
|
Type: TypeString,
|
||||||
|
Optional: true,
|
||||||
|
},
|
||||||
|
},
|
||||||
|
|
||||||
|
State: nil,
|
||||||
|
|
||||||
|
Config: map[string]interface{}{
|
||||||
|
"availability_zone": "${var.foo}",
|
||||||
|
},
|
||||||
|
|
||||||
|
ConfigVariables: map[string]string{
|
||||||
|
"var.foo": "bar",
|
||||||
|
},
|
||||||
|
|
||||||
|
Diff: &terraform.ResourceDiff{
|
||||||
|
Attributes: map[string]*terraform.ResourceAttrDiff{
|
||||||
|
"availability_zone": &terraform.ResourceAttrDiff{
|
||||||
|
Old: "",
|
||||||
|
New: "bar",
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
|
||||||
|
Err: false,
|
||||||
|
},
|
||||||
|
|
||||||
|
// Variable computed
|
||||||
|
{
|
||||||
|
Schema: map[string]*Schema{
|
||||||
|
"availability_zone": &Schema{
|
||||||
|
Type: TypeString,
|
||||||
|
Optional: true,
|
||||||
|
},
|
||||||
|
},
|
||||||
|
|
||||||
|
State: nil,
|
||||||
|
|
||||||
|
Config: map[string]interface{}{
|
||||||
|
"availability_zone": "${var.foo}",
|
||||||
|
},
|
||||||
|
|
||||||
|
ConfigVariables: map[string]string{
|
||||||
|
"var.foo": config.UnknownVariableValue,
|
||||||
|
},
|
||||||
|
|
||||||
|
Diff: &terraform.ResourceDiff{
|
||||||
|
Attributes: map[string]*terraform.ResourceAttrDiff{
|
||||||
|
"availability_zone": &terraform.ResourceAttrDiff{
|
||||||
|
Old: "",
|
||||||
|
New: "${var.foo}",
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
|
||||||
|
Err: false,
|
||||||
|
},
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Int decode
|
* Int decode
|
||||||
*/
|
*/
|
||||||
|
@ -870,6 +933,12 @@ func TestSchemaMap_Diff(t *testing.T) {
|
||||||
t.Fatalf("err: %s", err)
|
t.Fatalf("err: %s", err)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if len(tc.ConfigVariables) > 0 {
|
||||||
|
if err := c.Interpolate(tc.ConfigVariables); err != nil {
|
||||||
|
t.Fatalf("err: %s", err)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
d, err := schemaMap(tc.Schema).Diff(
|
d, err := schemaMap(tc.Schema).Diff(
|
||||||
tc.State, terraform.NewResourceConfig(c))
|
tc.State, terraform.NewResourceConfig(c))
|
||||||
if (err != nil) != tc.Err {
|
if (err != nil) != tc.Err {
|
||||||
|
|
Loading…
Reference in New Issue