mirror of
https://github.com/3bbbeau/tfvars-atlantis-config.git
synced 2024-11-22 14:00:52 +00:00
97 lines
1.9 KiB
Go
97 lines
1.9 KiB
Go
package repocfg
|
|
|
|
import (
|
|
"testing"
|
|
|
|
"github.com/google/go-cmp/cmp"
|
|
"github.com/runatlantis/atlantis/server/core/config/raw"
|
|
)
|
|
|
|
// Tests creating a new workflow from a Terraform component
|
|
func Test_WorkflowsFrom(t *testing.T) {
|
|
t.Parallel()
|
|
|
|
tests := []struct {
|
|
name string
|
|
component Component
|
|
want []ExtRawWorkflow
|
|
}{
|
|
{
|
|
name: "new-workflow",
|
|
component: Component{
|
|
Path: "test",
|
|
VarFiles: []string{"test/vars/dev.tfvars", "test/vars/stg.tfvars"},
|
|
},
|
|
want: []ExtRawWorkflow{
|
|
{
|
|
Name: "test-dev",
|
|
Args: &ExtraArgs{
|
|
"extra_args": []string{"-var-file=vars/dev.tfvars"},
|
|
},
|
|
Workspace: "dev",
|
|
Workflow: raw.Workflow{
|
|
Plan: &raw.Stage{
|
|
Steps: []raw.Step{
|
|
{
|
|
Key: ptr("init"),
|
|
},
|
|
{
|
|
Map: map[string]map[string][]string{
|
|
"plan": {"extra_args": []string{"-var-file=vars/dev.tfvars"}},
|
|
},
|
|
},
|
|
},
|
|
},
|
|
Apply: &raw.Stage{
|
|
Steps: []raw.Step{
|
|
{
|
|
Key: ptr("apply"),
|
|
},
|
|
},
|
|
},
|
|
},
|
|
},
|
|
{
|
|
Name: "test-stg",
|
|
Args: &ExtraArgs{
|
|
"extra_args": []string{"-var-file=vars/stg.tfvars"},
|
|
},
|
|
Workspace: "stg",
|
|
Workflow: raw.Workflow{
|
|
Plan: &raw.Stage{
|
|
Steps: []raw.Step{
|
|
{
|
|
Key: ptr("init"),
|
|
},
|
|
{
|
|
Map: map[string]map[string][]string{
|
|
"plan": {"extra_args": []string{"-var-file=vars/stg.tfvars"}},
|
|
},
|
|
},
|
|
},
|
|
},
|
|
Apply: &raw.Stage{
|
|
Steps: []raw.Step{
|
|
{
|
|
Key: ptr("apply"),
|
|
},
|
|
},
|
|
},
|
|
},
|
|
},
|
|
},
|
|
},
|
|
}
|
|
|
|
for _, tc := range tests {
|
|
got, err := WorkflowsFrom(tc.component, Options{})
|
|
if err != nil {
|
|
t.Errorf("WorkflowsFrom(): %s", err)
|
|
}
|
|
if !cmp.Equal(got, tc.want) {
|
|
t.Errorf(`WorkflowFrom()
|
|
diff %s`, cmp.Diff(got, tc.want))
|
|
}
|
|
}
|
|
}
|