mirror of
https://github.com/3bbbeau/tfvars-atlantis-config.git
synced 2024-11-22 05:50:51 +00:00
118 lines
2.2 KiB
Go
118 lines
2.2 KiB
Go
|
package repocfg
|
||
|
|
||
|
import (
|
||
|
"testing"
|
||
|
|
||
|
"github.com/google/go-cmp/cmp"
|
||
|
"github.com/runatlantis/atlantis/server/core/config/raw"
|
||
|
)
|
||
|
|
||
|
// Tests the ProjectFrom method for a project
|
||
|
func Test_ProjectsFrom(t *testing.T) {
|
||
|
t.Parallel()
|
||
|
|
||
|
tests := []struct {
|
||
|
component Component
|
||
|
options Options
|
||
|
want []ExtRawProject
|
||
|
}{
|
||
|
{
|
||
|
component: Component{
|
||
|
Path: "test",
|
||
|
VarFiles: []string{"env.tfvars"},
|
||
|
},
|
||
|
options: Options{
|
||
|
Autoplan: true,
|
||
|
DefaultTerraformVersion: "8.8.8",
|
||
|
Parallel: true,
|
||
|
UseWorkspaces: true,
|
||
|
},
|
||
|
want: []ExtRawProject{
|
||
|
{
|
||
|
Project: raw.Project{
|
||
|
Name: ptr("test-env"),
|
||
|
Dir: ptr("test"),
|
||
|
Workspace: ptr("env"),
|
||
|
TerraformVersion: ptr("8.8.8"),
|
||
|
Autoplan: &raw.Autoplan{
|
||
|
Enabled: ptr(true),
|
||
|
WhenModified: []string{
|
||
|
"*.tf",
|
||
|
"env.tfvars",
|
||
|
},
|
||
|
},
|
||
|
},
|
||
|
},
|
||
|
},
|
||
|
},
|
||
|
}
|
||
|
|
||
|
for _, tc := range tests {
|
||
|
got, err := ProjectsFrom(tc.component, tc.options)
|
||
|
if err != nil {
|
||
|
t.Errorf("ProjectFrom() error: %s", err)
|
||
|
}
|
||
|
|
||
|
if !cmp.Equal(got, tc.want) {
|
||
|
t.Errorf(`ProjectFrom()
|
||
|
diff %s`, cmp.Diff(got, tc.want))
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
|
||
|
// Tests the AutoPlan method for a project
|
||
|
func Test_AutoPlan(t *testing.T) {
|
||
|
t.Parallel()
|
||
|
|
||
|
want := &raw.Autoplan{
|
||
|
Enabled: ptr(true),
|
||
|
WhenModified: []string{
|
||
|
"*.tf",
|
||
|
"env.tfvars",
|
||
|
},
|
||
|
}
|
||
|
|
||
|
got := new(ExtRawProject)
|
||
|
|
||
|
got.AutoPlan("env.tfvars")
|
||
|
|
||
|
if !cmp.Equal(got.Autoplan, want) {
|
||
|
t.Errorf(`AutoPlan()
|
||
|
diff %s`, cmp.Diff(got, want))
|
||
|
}
|
||
|
}
|
||
|
|
||
|
// Tests the DefaultTerraformVersion method for a project
|
||
|
func Test_DefaultTerraformVersion(t *testing.T) {
|
||
|
t.Parallel()
|
||
|
|
||
|
tests := []struct {
|
||
|
version string
|
||
|
want raw.Project
|
||
|
}{
|
||
|
{
|
||
|
version: "8.8.8",
|
||
|
want: raw.Project{
|
||
|
TerraformVersion: ptr("8.8.8"),
|
||
|
},
|
||
|
},
|
||
|
{
|
||
|
version: "invalid",
|
||
|
want: raw.Project{
|
||
|
TerraformVersion: new(string),
|
||
|
},
|
||
|
},
|
||
|
}
|
||
|
|
||
|
for _, tc := range tests {
|
||
|
new := new(ExtRawProject)
|
||
|
new.DefaultTerraformVersion(tc.version)
|
||
|
got := new.Project.TerraformVersion
|
||
|
|
||
|
if !cmp.Equal(got, tc.want.TerraformVersion) {
|
||
|
t.Errorf(`DefaultTerraformVersion()
|
||
|
diff %s`, cmp.Diff(got, tc.want))
|
||
|
}
|
||
|
}
|
||
|
}
|