Skip to content

Commit 9d1fa05

Browse files
committed
add tests for completeness
Signed-off-by: Yuntao Hu <[email protected]>
1 parent d34091e commit 9d1fa05

File tree

6 files changed

+138
-2
lines changed

6 files changed

+138
-2
lines changed

syft/format/github/internal/model/model_test.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -83,7 +83,7 @@ func sbomFixture() sbom.SBOM {
8383
}
8484

8585
func Test_toGithubModel(t *testing.T) {
86-
tracker := sourcemetadata.NewCompletionTester(t)
86+
tracker := sourcemetadata.NewCompletionTester(t, source.UnknownMetadata{})
8787

8888
tests := []struct {
8989
name string

syft/format/internal/spdxutil/helpers/document_name_test.go

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -53,6 +53,14 @@ func Test_DocumentName(t *testing.T) {
5353
},
5454
expected: "some/name",
5555
},
56+
{
57+
name: "unknown",
58+
srcMetadata: source.Description{
59+
Name: "unknown",
60+
Metadata: source.UnknownMetadata{Group: "org.anchore"},
61+
},
62+
expected: "unknown",
63+
},
5664
}
5765
for _, test := range tests {
5866
t.Run(test.name, func(t *testing.T) {

syft/format/internal/spdxutil/helpers/document_namespace_test.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ import (
1313
)
1414

1515
func Test_documentNamespace(t *testing.T) {
16-
tracker := sourcemetadata.NewCompletionTester(t)
16+
tracker := sourcemetadata.NewCompletionTester(t, source.UnknownMetadata{})
1717

1818
tests := []struct {
1919
name string

syft/format/syftjson/model/source_test.go

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -149,6 +149,24 @@ func TestSource_UnmarshalJSON(t *testing.T) {
149149
},
150150
wantErr: require.Error,
151151
},
152+
{
153+
name: "unknown source type-II",
154+
input: []byte(`{
155+
"id": "foobar",
156+
"type": "unknown",
157+
"metadata": {
158+
"propertyA":"bla bla bla",
159+
"group":"org.anchore"
160+
}
161+
}`),
162+
expected: &Source{
163+
ID: "foobar",
164+
Type: "unknown",
165+
Metadata: source.UnknownMetadata{
166+
Group: "org.anchore",
167+
},
168+
},
169+
},
152170
}
153171

154172
for _, tt := range cases {

syft/format/syftjson/to_format_model_test.go

Lines changed: 56 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -127,6 +127,36 @@ func Test_toSourceModel(t *testing.T) {
127127
},
128128
},
129129
},
130+
{
131+
name: "unknown",
132+
src: source.Description{
133+
ID: "test-id",
134+
Name: "some-name",
135+
Version: "some-version",
136+
Metadata: source.UnknownMetadata{
137+
UserInput: "user-input",
138+
ID: "id...",
139+
Version: "version..",
140+
Group: "group..",
141+
Description: "desc..",
142+
PackageURL: "purl",
143+
},
144+
},
145+
expected: model.Source{
146+
ID: "test-id",
147+
Type: "unknown",
148+
Name: "some-name",
149+
Version: "some-version",
150+
Metadata: source.UnknownMetadata{
151+
UserInput: "user-input",
152+
ID: "id...",
153+
Version: "version..",
154+
Group: "group..",
155+
Description: "desc..",
156+
PackageURL: "purl",
157+
},
158+
},
159+
},
130160
// below are regression tests for when the name/version are not provided
131161
// historically we've hoisted up the name/version from the metadata, now it is a simple pass-through
132162
{
@@ -191,6 +221,32 @@ func Test_toSourceModel(t *testing.T) {
191221
},
192222
},
193223
},
224+
{
225+
name: "unknown - no name/version",
226+
src: source.Description{
227+
ID: "test-id",
228+
Metadata: source.UnknownMetadata{
229+
UserInput: "user-input",
230+
ID: "id..",
231+
Version: "version..",
232+
Group: "group..",
233+
Description: "desc..",
234+
PackageURL: "purl",
235+
},
236+
},
237+
expected: model.Source{
238+
ID: "test-id",
239+
Type: "unknown",
240+
Metadata: source.UnknownMetadata{
241+
UserInput: "user-input",
242+
ID: "id..",
243+
Version: "version..",
244+
Group: "group..",
245+
Description: "desc..",
246+
PackageURL: "purl",
247+
},
248+
},
249+
},
194250
}
195251
for _, test := range tests {
196252
t.Run(test.name, func(t *testing.T) {

syft/format/syftjson/to_syft_model_test.go

Lines changed: 54 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -100,6 +100,36 @@ func Test_toSyftSourceData(t *testing.T) {
100100
},
101101
},
102102
},
103+
{
104+
name: "unknown",
105+
src: model.Source{
106+
ID: "the-id",
107+
Name: "some-name",
108+
Version: "some-version",
109+
Type: "image",
110+
Metadata: source.UnknownMetadata{
111+
UserInput: "user-input",
112+
ID: "id...",
113+
Version: "version..",
114+
Group: "group..",
115+
Description: "desc..",
116+
PackageURL: "purl",
117+
},
118+
},
119+
expected: &source.Description{
120+
ID: "the-id",
121+
Name: "some-name",
122+
Version: "some-version",
123+
Metadata: source.UnknownMetadata{
124+
UserInput: "user-input",
125+
ID: "id...",
126+
Version: "version..",
127+
Group: "group..",
128+
Description: "desc..",
129+
PackageURL: "purl",
130+
},
131+
},
132+
},
103133
// below are regression tests for when the name/version are not provided
104134
// historically we've hoisted up the name/version from the metadata, now it is a simple pass-through
105135
{
@@ -162,6 +192,30 @@ func Test_toSyftSourceData(t *testing.T) {
162192
},
163193
},
164194
},
195+
{
196+
name: "unknown - no name/version",
197+
src: model.Source{
198+
ID: "the-id",
199+
Type: "image",
200+
Metadata: source.UnknownMetadata{
201+
UserInput: "user-input",
202+
ID: "id...",
203+
Group: "group..",
204+
Description: "desc..",
205+
PackageURL: "purl",
206+
},
207+
},
208+
expected: &source.Description{
209+
ID: "the-id",
210+
Metadata: source.UnknownMetadata{
211+
UserInput: "user-input",
212+
ID: "id...",
213+
Group: "group..",
214+
Description: "desc..",
215+
PackageURL: "purl",
216+
},
217+
},
218+
},
165219
}
166220
for _, test := range tests {
167221
t.Run(test.name, func(t *testing.T) {

0 commit comments

Comments
 (0)