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 }