Files
atlantis/server/events/runtime/minimum_version_step_runner_delegate_test.go
Dogers bc2b390431 Update Terraform 0.11.14 version to latest 0.11.15 (#1564)
* Update Docker file to 0.11.15 for PGP issue

* Update other references to TF 0.11 to latest 0.11.15
2021-05-10 13:58:36 -04:00

121 lines
2.6 KiB
Go

package runtime
import (
"testing"
"github.com/hashicorp/go-version"
. "github.com/petergtz/pegomock"
"github.com/runatlantis/atlantis/server/events/models"
"github.com/runatlantis/atlantis/server/events/runtime/mocks"
. "github.com/runatlantis/atlantis/testing"
)
func TestRunMinimumVersionDelegate(t *testing.T) {
RegisterMockTestingT(t)
mockDelegate := mocks.NewMockRunner()
tfVersion12, _ := version.NewVersion("0.12.0")
tfVersion11, _ := version.NewVersion("0.11.15")
// these stay the same for all tests
extraArgs := []string{"extra", "args"}
envs := map[string]string{}
path := ""
expectedOut := "some valid output from delegate"
t.Run("default version success", func(t *testing.T) {
subject := &MinimumVersionStepRunnerDelegate{
defaultTfVersion: tfVersion12,
minimumVersion: tfVersion12,
delegate: mockDelegate,
}
ctx := models.ProjectCommandContext{}
When(mockDelegate.Run(ctx, extraArgs, path, envs)).ThenReturn(expectedOut, nil)
output, err := subject.Run(
ctx,
extraArgs,
path,
envs,
)
Equals(t, expectedOut, output)
Ok(t, err)
})
t.Run("ctx version success", func(t *testing.T) {
subject := &MinimumVersionStepRunnerDelegate{
defaultTfVersion: tfVersion11,
minimumVersion: tfVersion12,
delegate: mockDelegate,
}
ctx := models.ProjectCommandContext{
TerraformVersion: tfVersion12,
}
When(mockDelegate.Run(ctx, extraArgs, path, envs)).ThenReturn(expectedOut, nil)
output, err := subject.Run(
ctx,
extraArgs,
path,
envs,
)
Equals(t, expectedOut, output)
Ok(t, err)
})
t.Run("default version failure", func(t *testing.T) {
subject := &MinimumVersionStepRunnerDelegate{
defaultTfVersion: tfVersion11,
minimumVersion: tfVersion12,
delegate: mockDelegate,
}
ctx := models.ProjectCommandContext{}
output, err := subject.Run(
ctx,
extraArgs,
path,
envs,
)
mockDelegate.VerifyWasCalled(Never())
Equals(t, "Version: 0.11.15 is unsupported for this step. Minimum version is: 0.12.0", output)
Ok(t, err)
})
t.Run("ctx version failure", func(t *testing.T) {
subject := &MinimumVersionStepRunnerDelegate{
defaultTfVersion: tfVersion12,
minimumVersion: tfVersion12,
delegate: mockDelegate,
}
ctx := models.ProjectCommandContext{
TerraformVersion: tfVersion11,
}
output, err := subject.Run(
ctx,
extraArgs,
path,
envs,
)
mockDelegate.VerifyWasCalled(Never())
Equals(t, "Version: 0.11.15 is unsupported for this step. Minimum version is: 0.12.0", output)
Ok(t, err)
})
}