@@ -81,6 +81,24 @@ var test01Pull = func() {
8181 })
8282
8383 g .Context ("Pull blobs" , func () {
84+ g .Specify ("HEAD request to nonexistent blob should result in 404 response" , func () {
85+ SkipIfDisabled (pull )
86+ req := client .NewRequest (reggie .HEAD , "/v2/<name>/blobs/<digest>" ,
87+ reggie .WithDigest (dummyDigest ))
88+ resp , err := client .Do (req )
89+ Expect (err ).To (BeNil ())
90+ Expect (resp .StatusCode ()).To (Equal (http .StatusNotFound ))
91+ })
92+
93+ g .Specify ("HEAD request to existing blob should yield 200" , func () {
94+ SkipIfDisabled (pull )
95+ req := client .NewRequest (reggie .HEAD , "/v2/<name>/blobs/<digest>" ,
96+ reggie .WithDigest (configBlobDigest ))
97+ resp , err := client .Do (req )
98+ Expect (err ).To (BeNil ())
99+ Expect (resp .StatusCode ()).To (Equal (http .StatusOK ))
100+ })
101+
84102 g .Specify ("GET nonexistent blob should result in 404 response" , func () {
85103 SkipIfDisabled (pull )
86104 req := client .NewRequest (reggie .GET , "/v2/<name>/blobs/<digest>" ,
@@ -100,6 +118,34 @@ var test01Pull = func() {
100118 })
101119
102120 g .Context ("Pull manifests" , func () {
121+ g .Specify ("HEAD request to nonexistent manifest should return 404" , func () {
122+ SkipIfDisabled (pull )
123+ req := client .NewRequest (reggie .HEAD , "/v2/<name>/manifests/<reference>" ,
124+ reggie .WithReference (nonexistentManifest ))
125+ resp , err := client .Do (req )
126+ Expect (err ).To (BeNil ())
127+ Expect (resp .StatusCode ()).To (Equal (http .StatusNotFound ))
128+ })
129+
130+ g .Specify ("HEAD request to manifest path (digest) should yield 200 response" , func () {
131+ SkipIfDisabled (pull )
132+ req := client .NewRequest (reggie .HEAD , "/v2/<name>/manifests/<digest>" , reggie .WithDigest (manifestDigest )).
133+ SetHeader ("Accept" , "application/vnd.oci.image.manifest.v1+json" )
134+ resp , err := client .Do (req )
135+ Expect (err ).To (BeNil ())
136+ Expect (resp .StatusCode ()).To (Equal (http .StatusOK ))
137+ })
138+
139+ g .Specify ("HEAD request to manifest path (tag) should yield 200 response" , func () {
140+ SkipIfDisabled (pull )
141+ Expect (tag ).ToNot (BeEmpty ())
142+ req := client .NewRequest (reggie .GET , "/v2/<name>/manifests/<reference>" , reggie .WithReference (tag )).
143+ SetHeader ("Accept" , "application/vnd.oci.image.manifest.v1+json" )
144+ resp , err := client .Do (req )
145+ Expect (err ).To (BeNil ())
146+ Expect (resp .StatusCode ()).To (Equal (http .StatusOK ))
147+ })
148+
103149 g .Specify ("GET nonexistent manifest should return 404" , func () {
104150 SkipIfDisabled (pull )
105151 req := client .NewRequest (reggie .GET , "/v2/<name>/manifests/<reference>" ,
0 commit comments