example_function_test.go 2.0 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879
  1. // Copyright (c) HashiCorp, Inc.
  2. // SPDX-License-Identifier: MPL-2.0
  3. package provider
  4. import (
  5. "regexp"
  6. "testing"
  7. "github.com/hashicorp/go-version"
  8. "github.com/hashicorp/terraform-plugin-testing/helper/resource"
  9. "github.com/hashicorp/terraform-plugin-testing/tfversion"
  10. )
  11. func TestExampleFunction_Known(t *testing.T) {
  12. resource.UnitTest(t, resource.TestCase{
  13. TerraformVersionChecks: []tfversion.TerraformVersionCheck{
  14. tfversion.SkipBelow(version.Must(version.NewVersion("1.8.0"))),
  15. },
  16. ProtoV6ProviderFactories: testAccProtoV6ProviderFactories,
  17. Steps: []resource.TestStep{
  18. {
  19. Config: `
  20. output "test" {
  21. value = provider::scaffolding::example("testvalue")
  22. }
  23. `,
  24. Check: resource.ComposeAggregateTestCheckFunc(
  25. resource.TestCheckOutput("test", "testvalue"),
  26. ),
  27. },
  28. },
  29. })
  30. }
  31. func TestExampleFunction_Null(t *testing.T) {
  32. resource.UnitTest(t, resource.TestCase{
  33. TerraformVersionChecks: []tfversion.TerraformVersionCheck{
  34. tfversion.SkipBelow(version.Must(version.NewVersion("1.8.0"))),
  35. },
  36. ProtoV6ProviderFactories: testAccProtoV6ProviderFactories,
  37. Steps: []resource.TestStep{
  38. {
  39. Config: `
  40. output "test" {
  41. value = provider::scaffolding::example(null)
  42. }
  43. `,
  44. // The parameter does not enable AllowNullValue
  45. ExpectError: regexp.MustCompile(`argument must not be null`),
  46. },
  47. },
  48. })
  49. }
  50. func TestExampleFunction_Unknown(t *testing.T) {
  51. resource.UnitTest(t, resource.TestCase{
  52. TerraformVersionChecks: []tfversion.TerraformVersionCheck{
  53. tfversion.SkipBelow(version.Must(version.NewVersion("1.8.0"))),
  54. },
  55. ProtoV6ProviderFactories: testAccProtoV6ProviderFactories,
  56. Steps: []resource.TestStep{
  57. {
  58. Config: `
  59. resource "terraform_data" "test" {
  60. input = "testvalue"
  61. }
  62. output "test" {
  63. value = provider::scaffolding::example(terraform_data.test.output)
  64. }
  65. `,
  66. Check: resource.ComposeAggregateTestCheckFunc(
  67. resource.TestCheckOutput("test", "testvalue"),
  68. ),
  69. },
  70. },
  71. })
  72. }