@@ -166,7 +166,7 @@ func Test_verifyAssetRun_SuccessNoTagArg(t *testing.T) {
166166 require .NoError (t , err )
167167}
168168
169- func Test_verifyAssetRun_FailedNoAttestations (t * testing.T ) {
169+ func Test_verifyAssetRun_FailedNoAttestations_SHA1 (t * testing.T ) {
170170 ios , _ , _ , _ := iostreams .Test ()
171171 tagName := "v1"
172172
@@ -180,6 +180,55 @@ func Test_verifyAssetRun_FailedNoAttestations(t *testing.T) {
180180
181181 releaseAssetPath := test .NormalizeRelativePath ("../../attestation/test/data/github_release_artifact.zip" )
182182
183+ var capturedParams api.FetchParams
184+ attClient := & api.MockClient {
185+ OnGetByDigest : func (params api.FetchParams ) ([]* api.Attestation , error ) {
186+ capturedParams = params
187+ return api .OnGetByDigestFailure (params )
188+ },
189+ }
190+
191+ cfg := & VerifyAssetConfig {
192+ Opts : & VerifyAssetOptions {
193+ AssetFilePath : releaseAssetPath ,
194+ TagName : tagName ,
195+ BaseRepo : baseRepo ,
196+ Exporter : nil ,
197+ },
198+ IO : ios ,
199+ HttpClient : & http.Client {Transport : fakeHTTP },
200+ AttClient : attClient ,
201+ AttVerifier : nil ,
202+ }
203+
204+ err = verifyAssetRun (cfg )
205+ require .ErrorContains (t , err , "no attestations found for tag v1" )
206+ require .ErrorContains (t , err , "sha1:" + fakeSHA )
207+ require .Equal (t , "sha1:" + fakeSHA , capturedParams .Digest )
208+ }
209+
210+ func Test_verifyAssetRun_FailedNoAttestations_SHA256 (t * testing.T ) {
211+ ios , _ , _ , _ := iostreams .Test ()
212+ tagName := "v1"
213+
214+ fakeHTTP := & httpmock.Registry {}
215+ defer fakeHTTP .Verify (t )
216+ fakeSHA := "1234567890abcdef1234567890abcdef1234567890abcdef1234567890abcdef"
217+ shared .StubFetchRefSHA (t , fakeHTTP , "owner" , "repo" , tagName , fakeSHA )
218+
219+ baseRepo , err := ghrepo .FromFullName ("owner/repo" )
220+ require .NoError (t , err )
221+
222+ releaseAssetPath := test .NormalizeRelativePath ("../../attestation/test/data/github_release_artifact.zip" )
223+
224+ var capturedParams api.FetchParams
225+ attClient := & api.MockClient {
226+ OnGetByDigest : func (params api.FetchParams ) ([]* api.Attestation , error ) {
227+ capturedParams = params
228+ return api .OnGetByDigestFailure (params )
229+ },
230+ }
231+
183232 cfg := & VerifyAssetConfig {
184233 Opts : & VerifyAssetOptions {
185234 AssetFilePath : releaseAssetPath ,
@@ -189,12 +238,14 @@ func Test_verifyAssetRun_FailedNoAttestations(t *testing.T) {
189238 },
190239 IO : ios ,
191240 HttpClient : & http.Client {Transport : fakeHTTP },
192- AttClient : api . NewFailTestClient () ,
241+ AttClient : attClient ,
193242 AttVerifier : nil ,
194243 }
195244
196245 err = verifyAssetRun (cfg )
197246 require .ErrorContains (t , err , "no attestations found for tag v1" )
247+ require .ErrorContains (t , err , "sha256:" + fakeSHA )
248+ require .Equal (t , "sha256:" + fakeSHA , capturedParams .Digest )
198249}
199250
200251func Test_verifyAssetRun_FailedTagNotInAttestation (t * testing.T ) {
0 commit comments