backend/terraform: additional test coverage for error cases in getBackend

This commit is contained in:
Ben Drucker 2020-05-06 18:54:25 -07:00 committed by Martin Atkins
parent 81b8891b90
commit db1a623ed4
1 changed files with 39 additions and 1 deletions

View File

@ -1,11 +1,11 @@
package terraform package terraform
import ( import (
"github.com/hashicorp/terraform/tfdiags"
"testing" "testing"
"github.com/apparentlymart/go-dump/dump" "github.com/apparentlymart/go-dump/dump"
"github.com/hashicorp/terraform/backend" "github.com/hashicorp/terraform/backend"
"github.com/hashicorp/terraform/tfdiags"
"github.com/zclconf/go-cty/cty" "github.com/zclconf/go-cty/cty"
) )
@ -41,6 +41,26 @@ func TestState_basic(t *testing.T) {
}), }),
false, false,
}, },
"_local": {
cty.ObjectVal(map[string]cty.Value{
"backend": cty.StringVal("_local"),
"config": cty.ObjectVal(map[string]cty.Value{
"path": cty.StringVal("./testdata/basic.tfstate"),
}),
}),
cty.ObjectVal(map[string]cty.Value{
"backend": cty.StringVal("_local"),
"config": cty.ObjectVal(map[string]cty.Value{
"path": cty.StringVal("./testdata/basic.tfstate"),
}),
"outputs": cty.ObjectVal(map[string]cty.Value{
"foo": cty.StringVal("bar"),
}),
"workspace": cty.StringVal(backend.DefaultStateName),
"defaults": cty.NullVal(cty.DynamicPseudoType),
}),
false,
},
"complex outputs": { "complex outputs": {
cty.ObjectVal(map[string]cty.Value{ cty.ObjectVal(map[string]cty.Value{
"backend": cty.StringVal("local"), "backend": cty.StringVal("local"),
@ -213,6 +233,24 @@ func TestState_basic(t *testing.T) {
}), }),
false, false,
}, },
"nonexistent backend": {
cty.ObjectVal(map[string]cty.Value{
"backend": cty.StringVal("nonexistent"),
"config": cty.ObjectVal(map[string]cty.Value{
"path": cty.StringVal("./testdata/basic.tfstate"),
}),
}),
cty.NilVal,
true,
},
"null config": {
cty.ObjectVal(map[string]cty.Value{
"backend": cty.StringVal("local"),
"config": cty.NullVal(cty.DynamicPseudoType),
}),
cty.NilVal,
true,
},
} }
for name, test := range tests { for name, test := range tests {
t.Run(name, func(t *testing.T) { t.Run(name, func(t *testing.T) {