mirror of https://github.com/databricks/cli.git
68 lines
1.4 KiB
Go
68 lines
1.4 KiB
Go
package phases
|
|
|
|
import (
|
|
"testing"
|
|
|
|
terraformlib "github.com/databricks/cli/libs/terraform"
|
|
tfjson "github.com/hashicorp/terraform-json"
|
|
"github.com/stretchr/testify/assert"
|
|
)
|
|
|
|
func TestParseTerraformActions(t *testing.T) {
|
|
changes := []*tfjson.ResourceChange{
|
|
{
|
|
Type: "databricks_pipeline",
|
|
Change: &tfjson.Change{
|
|
Actions: tfjson.Actions{tfjson.ActionCreate},
|
|
},
|
|
Name: "create pipeline",
|
|
},
|
|
{
|
|
Type: "databricks_pipeline",
|
|
Change: &tfjson.Change{
|
|
Actions: tfjson.Actions{tfjson.ActionDelete},
|
|
},
|
|
Name: "delete pipeline",
|
|
},
|
|
{
|
|
Type: "databricks_pipeline",
|
|
Change: &tfjson.Change{
|
|
Actions: tfjson.Actions{tfjson.ActionDelete, tfjson.ActionCreate},
|
|
},
|
|
Name: "recreate pipeline",
|
|
},
|
|
{
|
|
Type: "databricks_whatever",
|
|
Change: &tfjson.Change{
|
|
Actions: tfjson.Actions{tfjson.ActionDelete, tfjson.ActionCreate},
|
|
},
|
|
Name: "recreate whatever",
|
|
},
|
|
}
|
|
|
|
res := filterDeleteOrRecreateActions(changes, func(typ string, actions tfjson.Actions) bool {
|
|
if typ != "databricks_pipeline" {
|
|
return false
|
|
}
|
|
|
|
if actions.Delete() || actions.Replace() {
|
|
return true
|
|
}
|
|
|
|
return false
|
|
})
|
|
|
|
assert.Equal(t, []terraformlib.Action{
|
|
{
|
|
Action: terraformlib.ActionTypeDelete,
|
|
ResourceType: "databricks_pipeline",
|
|
ResourceName: "delete pipeline",
|
|
},
|
|
{
|
|
Action: terraformlib.ActionTypeRecreate,
|
|
ResourceType: "databricks_pipeline",
|
|
ResourceName: "recreate pipeline",
|
|
},
|
|
}, res)
|
|
}
|