github.com/khulnasoft-lab/tunnel-db@v0.0.0-20231117205118-74e1113bd007/pkg/vulnsrc/bitnami/bitnami_test.go (about) 1 package bitnami_test 2 3 import ( 4 "path/filepath" 5 "testing" 6 7 "github.com/khulnasoft-lab/tunnel-db/pkg/types" 8 "github.com/khulnasoft-lab/tunnel-db/pkg/vulnsrc/bitnami" 9 "github.com/khulnasoft-lab/tunnel-db/pkg/vulnsrc/bucket" 10 "github.com/khulnasoft-lab/tunnel-db/pkg/vulnsrc/vulnerability" 11 "github.com/khulnasoft-lab/tunnel-db/pkg/vulnsrctest" 12 ) 13 14 var bucketName = bucket.Name(vulnerability.Bitnami, "Bitnami Vulnerability Database") 15 16 func TestVulnSrc_Update(t *testing.T) { 17 tests := []struct { 18 name string 19 dir string 20 wantValues []vulnsrctest.WantValues 21 wantErr string 22 }{ 23 { 24 name: "happy path", 25 dir: filepath.Join("testdata", "happy"), 26 wantValues: []vulnsrctest.WantValues{ 27 { 28 Key: []string{ 29 "data-source", 30 bucketName, 31 }, 32 Value: types.DataSource{ 33 ID: vulnerability.BitnamiVulndb, 34 Name: "Bitnami Vulnerability Database", 35 URL: "https://github.com/bitnami/vulndb", 36 }, 37 }, 38 { 39 Key: []string{ 40 "advisory-detail", 41 "CVE-2020-11998", 42 bucketName, 43 "activemq", 44 }, 45 Value: types.Advisory{ 46 VulnerableVersions: []string{"=5.15.12"}, 47 PatchedVersions: []string{}, 48 VendorIDs: []string{"BIT-2020-11998"}, 49 }, 50 }, 51 { 52 Key: []string{ 53 "advisory-detail", 54 "CVE-2020-12603", 55 bucketName, 56 "envoy", 57 }, 58 Value: types.Advisory{ 59 VulnerableVersions: []string{ 60 "<1.12.4", 61 "=1.13.2", 62 "=1.14.2", 63 }, 64 PatchedVersions: []string{"1.12.4"}, 65 VendorIDs: []string{"BIT-2020-12603"}, 66 }, 67 }, 68 { 69 Key: []string{ 70 "advisory-detail", 71 "CVE-2020-7059", 72 bucketName, 73 "php", 74 }, 75 Value: types.Advisory{ 76 VulnerableVersions: []string{ 77 ">=7.2.0, <7.2.27", 78 ">=7.3.0, <7.3.14", 79 ">=7.4.0, <7.4.2", 80 }, 81 PatchedVersions: []string{ 82 "7.2.27", 83 "7.3.14", 84 "7.4.2", 85 }, 86 VendorIDs: []string{"BIT-2020-7059"}, 87 }, 88 }, 89 }, 90 }, 91 { 92 name: "sad path", 93 dir: filepath.Join("testdata", "sad"), 94 wantErr: "JSON decode error", 95 }, 96 } 97 for _, tt := range tests { 98 t.Run(tt.name, func(t *testing.T) { 99 vs := bitnami.NewVulnSrc() 100 vulnsrctest.TestUpdate(t, vs, vulnsrctest.TestUpdateArgs{ 101 Dir: tt.dir, 102 WantValues: tt.wantValues, 103 WantErr: tt.wantErr, 104 }) 105 }) 106 } 107 }