MCPcopy Create free account
hub / github.com/chainloop-dev/chainloop / TestCraftImage

Method TestCraftImage

pkg/blobmanager/oci/backend_test.go:251–326  ·  view source on GitHub ↗
()

Source from the content-addressed store, hash-verified

249}
250
251func (s *testSuite) TestCraftImage() {
252 testCases := []struct {
253 name string
254 filename string
255 digest string
256 content []byte
257 wantErr bool
258 errMsg string
259 }{
260 {
261 name: "empty content",
262 filename: s.casResource.FileName,
263 digest: s.casResource.Digest,
264 content: nil,
265 wantErr: true,
266 errMsg: "content is empty",
267 },
268 {
269 name: "missing filename",
270 digest: s.casResource.Digest,
271 content: s.uploadedContent,
272 wantErr: true,
273 errMsg: "metadata is not valid",
274 },
275 {
276 name: "missing digest",
277 filename: s.casResource.FileName,
278 content: s.uploadedContent,
279 wantErr: true,
280 errMsg: "metadata is not valid",
281 },
282 {
283 name: "valid image",
284 filename: s.casResource.FileName,
285 digest: s.casResource.Digest,
286 content: s.uploadedContent,
287 wantErr: false,
288 },
289 }
290
291 assert := assert.New(s.T())
292 for _, tc := range testCases {
293 s.T().Run(tc.name, func(t *testing.T) {
294 img, err := craftImage(tc.content, &pb.CASResource{FileName: tc.filename, Digest: tc.digest})
295 if tc.wantErr {
296 assert.ErrorContains(err, tc.errMsg)
297 } else {
298 assert.NoError(err)
299
300 // Check the image content
301 mt, err := img.MediaType()
302 assert.NoError(err)
303 assert.True(mt.IsImage())
304
305 // Annotations
306 m, err := img.Manifest()
307 assert.NoError(err)
308

Callers

nothing calls this directly

Calls 3

craftImageFunction · 0.85
RunMethod · 0.45
DigestMethod · 0.45

Tested by

no test coverage detected