github.com/lineaje-labs/syft@v0.98.1-0.20231227153149-9e393f60ff1b/syft/format/common/spdxhelpers/download_location_test.go (about)

     1  package spdxhelpers
     2  
     3  import (
     4  	"testing"
     5  
     6  	"github.com/stretchr/testify/assert"
     7  
     8  	"github.com/anchore/syft/syft/pkg"
     9  )
    10  
    11  func Test_DownloadLocation(t *testing.T) {
    12  	tests := []struct {
    13  		name     string
    14  		input    pkg.Package
    15  		expected string
    16  	}{
    17  		{
    18  			name:     "no metadata",
    19  			input:    pkg.Package{},
    20  			expected: NOASSERTION,
    21  		},
    22  		{
    23  			name: "from apk",
    24  			input: pkg.Package{
    25  				Metadata: pkg.ApkDBEntry{
    26  					URL: "http://a-place.gov",
    27  				},
    28  			},
    29  			expected: "http://a-place.gov",
    30  		},
    31  		{
    32  			name: "from npm",
    33  			input: pkg.Package{
    34  				Metadata: pkg.NpmPackage{
    35  					URL: "http://a-place.gov",
    36  				},
    37  			},
    38  			expected: "http://a-place.gov",
    39  		},
    40  		{
    41  			name: "empty",
    42  			input: pkg.Package{
    43  				Metadata: pkg.NpmPackage{
    44  					URL: "",
    45  				},
    46  			},
    47  			expected: NONE,
    48  		},
    49  		{
    50  			name: "from npm package-lock should include resolved",
    51  			input: pkg.Package{
    52  				Metadata: pkg.NpmPackageLockEntry{
    53  					Resolved: "http://package-lock.test",
    54  				},
    55  			},
    56  			expected: "http://package-lock.test",
    57  		},
    58  		{
    59  			name: "from npm package-lock empty should be NONE",
    60  			input: pkg.Package{
    61  				Metadata: pkg.NpmPackageLockEntry{
    62  					Resolved: "",
    63  				},
    64  			},
    65  			expected: NONE,
    66  		},
    67  	}
    68  	for _, test := range tests {
    69  		t.Run(test.name, func(t *testing.T) {
    70  			assert.Equal(t, test.expected, DownloadLocation(test.input))
    71  		})
    72  	}
    73  }