package provider import ( "regexp" "testing" "github.com/hashicorp/go-version" "github.com/hashicorp/terraform-plugin-testing/helper/resource" "github.com/hashicorp/terraform-plugin-testing/tfversion" ) func TestExampleFunction_Known(t *testing.T) { resource.UnitTest(t, resource.TestCase{ TerraformVersionChecks: []tfversion.TerraformVersionCheck{ tfversion.SkipBelow(version.Must(version.NewVersion("1.8.0"))), }, ProtoV6ProviderFactories: testAccProtoV6ProviderFactories, Steps: []resource.TestStep{ { Config: ` output "test" { value = provider::scaffolding::example("testvalue") } `, Check: resource.ComposeAggregateTestCheckFunc( resource.TestCheckOutput("test", "testvalue"), ), }, }, }) } func TestExampleFunction_Null(t *testing.T) { resource.UnitTest(t, resource.TestCase{ TerraformVersionChecks: []tfversion.TerraformVersionCheck{ tfversion.SkipBelow(version.Must(version.NewVersion("1.8.0"))), }, ProtoV6ProviderFactories: testAccProtoV6ProviderFactories, Steps: []resource.TestStep{ { Config: ` output "test" { value = provider::scaffolding::example(null) } `, // The parameter does not enable AllowNullValue ExpectError: regexp.MustCompile(`argument must not be null`), }, }, }) } func TestExampleFunction_Unknown(t *testing.T) { resource.UnitTest(t, resource.TestCase{ TerraformVersionChecks: []tfversion.TerraformVersionCheck{ tfversion.SkipBelow(version.Must(version.NewVersion("1.8.0"))), }, ProtoV6ProviderFactories: testAccProtoV6ProviderFactories, Steps: []resource.TestStep{ { Config: ` resource "terraform_data" "test" { input = "testvalue" } output "test" { value = provider::scaffolding::example(terraform_data.test.output) } `, Check: resource.ComposeAggregateTestCheckFunc( resource.TestCheckOutput("test", "testvalue"), ), }, }, }) }