diff --git a/syft/source/stereoscope_image_source.go b/syft/source/stereoscope_image_source.go index 225db3528aa..2f45de7de15 100644 --- a/syft/source/stereoscope_image_source.go +++ b/syft/source/stereoscope_image_source.go @@ -109,8 +109,6 @@ func (s StereoscopeImageSource) Describe() Description { } else { if ref, ok := ref.(reference.Named); ok { nameIfUnset(ref.Name()) - } else { - nameIfUnset(s.metadata.UserInput) } if ref, ok := ref.(reference.NamedTagged); ok { @@ -122,6 +120,7 @@ func (s StereoscopeImageSource) Describe() Description { } } + nameIfUnset(s.metadata.UserInput) versionIfUnset(s.metadata.ManifestDigest) return Description{ diff --git a/syft/source/stereoscope_image_source_test.go b/syft/source/stereoscope_image_source_test.go index 8f1b8d4b202..32f89ae4d43 100644 --- a/syft/source/stereoscope_image_source_test.go +++ b/syft/source/stereoscope_image_source_test.go @@ -241,3 +241,31 @@ func Test_StereoscopeImageSource_ID(t *testing.T) { }) } } + +func Test_Describe(t *testing.T) { + tests := []struct { + name string + source StereoscopeImageSource + expected Description + }{ + { + name: "name from user input", + source: StereoscopeImageSource{ + id: "some-id", + metadata: StereoscopeImageSourceMetadata{ + UserInput: "user input", + }, + }, + expected: Description{ + ID: "some-id", + Name: "user input", + }, + }, + } + + for _, test := range tests { + got := test.source.Describe() + got.Metadata = nil // might want to test this, but do not to determine if the user input is userd + require.Equal(t, test.expected, got) + } +}