2020-10-16 07:25:38 -07:00
|
|
|
package main
|
|
|
|
|
|
|
|
import (
|
|
|
|
"testing"
|
|
|
|
|
|
|
|
"github.com/stretchr/testify/assert"
|
|
|
|
)
|
|
|
|
|
|
|
|
type terraformArgs struct {
|
|
|
|
hasTfCommand bool
|
|
|
|
hasTfFolder bool
|
|
|
|
workspaceName string
|
|
|
|
}
|
|
|
|
|
|
|
|
func bootStrapTerraformTest(args *terraformArgs) *terraform {
|
|
|
|
env := new(MockedEnvironment)
|
2022-01-23 12:37:51 -08:00
|
|
|
env.On("HasCommand", "terraform").Return(args.hasTfCommand)
|
|
|
|
env.On("HasFolder", "/.terraform").Return(args.hasTfFolder)
|
|
|
|
env.On("Pwd").Return("")
|
|
|
|
env.On("RunCommand", "terraform", []string{"workspace", "show"}).Return(args.workspaceName, nil)
|
2020-10-16 07:25:38 -07:00
|
|
|
k := &terraform{
|
2022-01-01 11:08:08 -08:00
|
|
|
env: env,
|
|
|
|
props: properties{},
|
2020-10-16 07:25:38 -07:00
|
|
|
}
|
|
|
|
return k
|
|
|
|
}
|
|
|
|
|
|
|
|
func TestTerraformWriterDisabled(t *testing.T) {
|
|
|
|
args := &terraformArgs{
|
|
|
|
hasTfCommand: false,
|
|
|
|
hasTfFolder: false,
|
|
|
|
}
|
|
|
|
terraform := bootStrapTerraformTest(args)
|
|
|
|
assert.False(t, terraform.enabled())
|
|
|
|
}
|
|
|
|
|
|
|
|
func TestTerraformMissingDir(t *testing.T) {
|
|
|
|
args := &terraformArgs{
|
|
|
|
hasTfCommand: true,
|
|
|
|
hasTfFolder: false,
|
|
|
|
}
|
|
|
|
terraform := bootStrapTerraformTest(args)
|
|
|
|
assert.False(t, terraform.enabled())
|
|
|
|
}
|
|
|
|
|
|
|
|
func TestTerraformMissingBinary(t *testing.T) {
|
|
|
|
args := &terraformArgs{
|
|
|
|
hasTfCommand: false,
|
|
|
|
hasTfFolder: true,
|
|
|
|
}
|
|
|
|
terraform := bootStrapTerraformTest(args)
|
|
|
|
assert.False(t, terraform.enabled())
|
|
|
|
}
|
|
|
|
|
|
|
|
func TestTerraformEnabled(t *testing.T) {
|
|
|
|
expected := "default"
|
|
|
|
args := &terraformArgs{
|
|
|
|
hasTfCommand: true,
|
|
|
|
hasTfFolder: true,
|
|
|
|
workspaceName: expected,
|
|
|
|
}
|
|
|
|
terraform := bootStrapTerraformTest(args)
|
|
|
|
assert.True(t, terraform.enabled())
|
|
|
|
}
|