github.com/khulnasoft-lab/defsec@v1.0.5-0.20230827010352-5e9f46893d95/rules/specs/loader_test.go (about) 1 package specs 2 3 import ( 4 "os" 5 "testing" 6 7 "github.com/stretchr/testify/assert" 8 ) 9 10 func TestLoadSpecs(t *testing.T) { 11 tests := []struct { 12 name string 13 specName string 14 wantSpecPath string 15 }{ 16 {name: "nsa spec", specName: "k8s-nsa", wantSpecPath: "./compliance/k8s-nsa-1.0.yaml"}, 17 {name: "k8s cis bench", specName: "k8s-cis", wantSpecPath: "./compliance/k8s-cis-1.23.yaml"}, 18 {name: "k8s pss baseline", specName: "k8s-pss-baseline", wantSpecPath: "./compliance/k8s-pss-baseline.yaml"}, 19 {name: "k8s pss restricted", specName: "k8s-pss-restricted", wantSpecPath: "./compliance/k8s-pss-restricted.yaml"}, 20 {name: "awscis1.2", specName: "aws-cis-1.2", wantSpecPath: "./compliance/aws-cis-1.2.yaml"}, 21 {name: "awscis1.4", specName: "aws-cis-1.4", wantSpecPath: "./compliance/aws-cis-1.4.yaml"}, 22 {name: "docker cis bench", specName: "docker-cis", wantSpecPath: "./compliance/docker-cis.yaml"}, 23 {name: "awscis1.2 by filepath", specName: "@./compliance/aws-cis-1.2.yaml", wantSpecPath: "./compliance/aws-cis-1.2.yaml"}, 24 {name: "bogus spec", specName: "foobarbaz"}, 25 } 26 27 for _, tt := range tests { 28 t.Run(tt.name, func(t *testing.T) { 29 if tt.wantSpecPath != "" { 30 wantSpecData, err := os.ReadFile(tt.wantSpecPath) 31 assert.NoError(t, err) 32 gotSpecData := GetSpec(tt.specName) 33 assert.Equal(t, gotSpecData, string(wantSpecData)) 34 } else { 35 assert.Empty(t, GetSpec(tt.specName), tt.name) 36 } 37 }) 38 } 39 }