@@ -237,6 +237,18 @@ var test03ContentDiscovery = func() {
237
237
BeNumerically (">=" , 200 ),
238
238
BeNumerically ("<" , 300 )))
239
239
Expect (resp .Header ().Get ("OCI-Subject" )).To (Equal (manifests [4 ].Digest ))
240
+
241
+ // Populate registry with test references manifest to a non-existent subject
242
+ req = client .NewRequest (reggie .PUT , "/v2/<name>/manifests/<reference>" ,
243
+ reggie .WithReference (refsManifestCLayerArtifactDigest )).
244
+ SetHeader ("Content-Type" , "application/vnd.oci.image.manifest.v1+json" ).
245
+ SetBody (refsManifestCLayerArtifactContent )
246
+ resp , err = client .Do (req )
247
+ Expect (err ).To (BeNil ())
248
+ Expect (resp .StatusCode ()).To (SatisfyAll (
249
+ BeNumerically (">=" , 200 ),
250
+ BeNumerically ("<" , 300 )))
251
+ Expect (resp .Header ().Get ("OCI-Subject" )).To (Equal (manifests [3 ].Digest ))
240
252
})
241
253
})
242
254
@@ -351,6 +363,22 @@ var test03ContentDiscovery = func() {
351
363
Warn ("filtering by artifact-type is not implemented" )
352
364
}
353
365
})
366
+
367
+ g .Specify ("GET request to missing manifest should yield 200" , func () {
368
+ SkipIfDisabled (contentDiscovery )
369
+ req := client .NewRequest (reggie .GET , "/v2/<name>/referrers/<digest>" ,
370
+ reggie .WithDigest (manifests [3 ].Digest ))
371
+ resp , err := client .Do (req )
372
+ Expect (err ).To (BeNil ())
373
+ Expect (resp .StatusCode ()).To (Equal (http .StatusOK ))
374
+ Expect (resp .Header ().Get ("Content-Type" )).To (Equal ("application/vnd.oci.image.index.v1+json" ))
375
+
376
+ var index index
377
+ err = json .Unmarshal (resp .Body (), & index )
378
+ Expect (err ).To (BeNil ())
379
+ Expect (len (index .Manifests )).To (Equal (1 ))
380
+ Expect (index .Manifests [0 ].Digest .String ()).To (Equal (refsManifestCLayerArtifactDigest ))
381
+ })
354
382
})
355
383
356
384
g .Context ("Teardown" , func () {
@@ -367,6 +395,7 @@ var test03ContentDiscovery = func() {
367
395
testTagName ,
368
396
refsManifestBConfigArtifactDigest ,
369
397
refsManifestBLayerArtifactDigest ,
398
+ refsManifestCLayerArtifactDigest ,
370
399
}
371
400
for _ , ref := range references {
372
401
req := client .NewRequest (reggie .DELETE , "/v2/<name>/manifests/<digest>" , reggie .WithDigest (ref ))
@@ -427,6 +456,7 @@ var test03ContentDiscovery = func() {
427
456
testTagName ,
428
457
refsManifestBConfigArtifactDigest ,
429
458
refsManifestBLayerArtifactDigest ,
459
+ refsManifestCLayerArtifactDigest ,
430
460
}
431
461
for _ , ref := range references {
432
462
req := client .NewRequest (reggie .DELETE , "/v2/<name>/manifests/<digest>" , reggie .WithDigest (ref ))
0 commit comments