github.com/khulnasoft-lab/defsec@v1.0.5-0.20230827010352-5e9f46893d95/pkg/rego/metadata_test.go (about) 1 package rego 2 3 import ( 4 "testing" 5 6 "github.com/stretchr/testify/assert" 7 ) 8 9 func Test_getEngineMetadata(t *testing.T) { 10 inputSchema := map[string]interface{}{ 11 "terraform": map[string]interface{}{ 12 "good_examples": `resource "aws_cloudtrail" "good_example" { 13 is_multi_region_trail = true 14 15 event_selector { 16 read_write_type = "All" 17 include_management_events = true 18 19 data_resource { 20 type = "AWS::S3::Object" 21 values = ["${data.aws_s3_bucket.important-bucket.arn}/"] 22 } 23 } 24 }`, 25 }, 26 "cloud_formation": map[string]interface{}{"good_examples": `--- 27 Resources: 28 GoodExample: 29 Type: AWS::CloudTrail::Trail 30 Properties: 31 IsLogging: true 32 IsMultiRegionTrail: true 33 S3BucketName: "CloudtrailBucket" 34 S3KeyPrefix: "/trailing" 35 TrailName: "Cloudtrail"`, 36 }} 37 38 var testCases = []struct { 39 schema string 40 want string 41 }{ 42 { 43 schema: "terraform", 44 want: `resource "aws_cloudtrail" "good_example" { 45 is_multi_region_trail = true 46 47 event_selector { 48 read_write_type = "All" 49 include_management_events = true 50 51 data_resource { 52 type = "AWS::S3::Object" 53 values = ["${data.aws_s3_bucket.important-bucket.arn}/"] 54 } 55 } 56 }`, 57 }, 58 {schema: "cloud_formation", 59 want: `--- 60 Resources: 61 GoodExample: 62 Type: AWS::CloudTrail::Trail 63 Properties: 64 IsLogging: true 65 IsMultiRegionTrail: true 66 S3BucketName: "CloudtrailBucket" 67 S3KeyPrefix: "/trailing" 68 TrailName: "Cloudtrail"`}, 69 } 70 71 for _, tc := range testCases { 72 t.Run(tc.schema, func(t *testing.T) { 73 var m MetadataRetriever 74 em, err := m.getEngineMetadata(tc.schema, inputSchema) 75 assert.NoError(t, err) 76 assert.Equal(t, tc.want, em.GoodExamples[0]) 77 }) 78 } 79 }