example_function_test.go 1.9 KB

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