github.com/khulnasoft-lab/defsec@v1.0.5-0.20230827010352-5e9f46893d95/internal/adapters/terraform/aws/apigateway/namesv2_test.go (about)

     1  package apigateway
     2  
     3  import (
     4  	"testing"
     5  
     6  	"github.com/khulnasoft-lab/defsec/internal/adapters/terraform/tftestutil"
     7  	v2 "github.com/khulnasoft-lab/defsec/pkg/providers/aws/apigateway/v2"
     8  
     9  	"github.com/khulnasoft-lab/defsec/test/testutil"
    10  )
    11  
    12  func Test_adaptDomainNamesV2(t *testing.T) {
    13  	tests := []struct {
    14  		name      string
    15  		terraform string
    16  		expected  []v2.DomainName
    17  	}{
    18  		{
    19  			name: "defaults",
    20  			terraform: `
    21  resource "aws_apigatewayv2_domain_name" "example" {
    22  }
    23  `,
    24  			expected: []v2.DomainName{
    25  				{
    26  					Name:           String(""),
    27  					SecurityPolicy: String("TLS_1_0"),
    28  				},
    29  			},
    30  		},
    31  		{
    32  			name: "fully populated",
    33  			terraform: `
    34  resource "aws_apigatewayv2_domain_name" "example" {
    35                  domain_name = "testing.com"
    36                  domain_name_configuration {
    37                      security_policy = "TLS_1_2"
    38                  }
    39  }
    40  `,
    41  			expected: []v2.DomainName{
    42  				{
    43  					Name:           String("testing.com"),
    44  					SecurityPolicy: String("TLS_1_2"),
    45  				},
    46  			},
    47  		},
    48  	}
    49  
    50  	for _, test := range tests {
    51  		t.Run(test.name, func(t *testing.T) {
    52  			modules := tftestutil.CreateModulesFromSource(t, test.terraform, ".tf")
    53  			adapted := adaptDomainNamesV2(modules)
    54  			testutil.AssertDefsecEqual(t, test.expected, adapted)
    55  		})
    56  	}
    57  }