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  }