github.com/khulnasoft-lab/tunnel-db@v0.0.0-20231117205118-74e1113bd007/pkg/vulnsrc/arch-linux/archlinux_test.go (about)

     1  package archlinux
     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/vulnerability"
     9  	"github.com/khulnasoft-lab/tunnel-db/pkg/vulnsrctest"
    10  )
    11  
    12  func TestVulnSrc_Update(t *testing.T) {
    13  	tests := []struct {
    14  		name       string
    15  		dir        string
    16  		wantValues []vulnsrctest.WantValues
    17  		wantErr    string
    18  	}{
    19  		{
    20  			name: "happy path",
    21  			dir:  filepath.Join("testdata", "happy"),
    22  			wantValues: []vulnsrctest.WantValues{
    23  				{
    24  					Key: []string{"data-source", "archlinux"},
    25  					Value: types.DataSource{
    26  						ID:   vulnerability.ArchLinux,
    27  						Name: "Arch Linux Vulnerable issues",
    28  						URL:  "https://security.archlinux.org/",
    29  					},
    30  				},
    31  				{
    32  					Key: []string{"advisory-detail", "CVE-2019-11479", "archlinux", "linux-lts"},
    33  					Value: types.Advisory{
    34  						FixedVersion:    "4.19.52-1",
    35  						AffectedVersion: "4.19.51-1",
    36  					},
    37  				},
    38  				{
    39  					Key: []string{"advisory-detail", "CVE-2019-11478", "archlinux", "linux-lts"},
    40  					Value: types.Advisory{
    41  						FixedVersion:    "4.19.52-1",
    42  						AffectedVersion: "4.19.51-1",
    43  					},
    44  				},
    45  				{
    46  					Key: []string{"advisory-detail", "CVE-2019-11477", "archlinux", "linux-lts"},
    47  					Value: types.Advisory{
    48  						FixedVersion:    "4.19.52-1",
    49  						AffectedVersion: "4.19.51-1",
    50  					},
    51  				},
    52  			},
    53  		},
    54  		{
    55  			name:    "sad path",
    56  			dir:     filepath.Join("testdata", "sad"),
    57  			wantErr: "failed to decode arch linux json",
    58  		},
    59  	}
    60  	for _, tt := range tests {
    61  		t.Run(tt.name, func(t *testing.T) {
    62  			vs := NewVulnSrc()
    63  			vulnsrctest.TestUpdate(t, vs, vulnsrctest.TestUpdateArgs{
    64  				Dir:        tt.dir,
    65  				WantValues: tt.wantValues,
    66  				WantErr:    tt.wantErr,
    67  			})
    68  		})
    69  	}
    70  }