diff --git a/internal/command/test_test.go b/internal/command/test_test.go index 14577d605b..aa20ef51f0 100644 --- a/internal/command/test_test.go +++ b/internal/command/test_test.go @@ -317,6 +317,11 @@ func TestTest_Runs(t *testing.T) { expectedErr: []string{"Test assertion failed", "resource renamed without moved block"}, code: 1, }, + "unapplyable-plan": { + expectedOut: []string{"0 passed, 1 failed."}, + expectedErr: []string{"Cannot apply non-applyable plan"}, + code: 1, + }, } for name, tc := range tcs { t.Run(name, func(t *testing.T) { diff --git a/internal/command/testdata/test/unapplyable-plan/main.tf b/internal/command/testdata/test/unapplyable-plan/main.tf new file mode 100644 index 0000000000..36bc69bcdb --- /dev/null +++ b/internal/command/testdata/test/unapplyable-plan/main.tf @@ -0,0 +1,8 @@ + +resource "test_resource" "example" { + value = "bar" +} + +output "value" { + value = test_resource.example.value +} diff --git a/internal/command/testdata/test/unapplyable-plan/main.tftest.hcl b/internal/command/testdata/test/unapplyable-plan/main.tftest.hcl new file mode 100644 index 0000000000..8e52386ac9 --- /dev/null +++ b/internal/command/testdata/test/unapplyable-plan/main.tftest.hcl @@ -0,0 +1,11 @@ + +run "test" { + command = apply + plan_options { + mode = refresh-only + } + assert { + condition = test_resource.example.value == "bar" + error_message = "wrong value" + } +}