@@ -3,11 +3,13 @@ package v1_test
33import (
44 "encoding/json"
55 "errors"
6- log "github.com/sirupsen/logrus "
6+ "fmt "
77 "net/http"
88 "net/http/httptest"
99 "strings"
1010
11+ log "github.com/sirupsen/logrus"
12+
1113 "github.com/golang/mock/gomock"
1214 . "github.com/onsi/ginkgo"
1315 . "github.com/onsi/gomega"
@@ -192,25 +194,28 @@ var _ = Describe("Harbor Scanner Sysdig Secure API Adapter", func() {
192194 })
193195
194196 Context ("GET /api/v1/scan/{scan_request_id}/report" , func () {
197+ reqID := harbor .ScanRequestID ("scan-request-id" )
198+ reqPath := fmt .Sprintf ("/api/v1/scan/%s/report" , reqID )
199+
195200 It ("returns OK" , func () {
196- adapter .EXPECT ().GetVulnerabilityReport ("scan-request-id" ).Return (vulnerabilityReport (), nil )
201+ adapter .EXPECT ().GetVulnerabilityReport (reqID ).Return (vulnerabilityReport (), nil )
197202
198- response := doGetRequest (handler , "/api/v1/scan/scan-request-id/report" )
203+ response := doGetRequest (handler , reqPath )
199204
200205 Expect (response .StatusCode ).To (Equal (http .StatusOK ))
201206 })
202207
203208 It ("returns scanner.adapter.vuln.report.harbor Mime Type" , func () {
204- adapter .EXPECT ().GetVulnerabilityReport ("scan-request-id" ).Return (vulnerabilityReport (), nil )
209+ adapter .EXPECT ().GetVulnerabilityReport (reqID ).Return (vulnerabilityReport (), nil )
205210
206- response := doGetRequest (handler , "/api/v1/scan/scan-request-id/report" )
211+ response := doGetRequest (handler , reqPath )
207212
208213 Expect (response .Header .Get ("Content-Type" )).To (Equal ("application/vnd.scanner.adapter.vuln.report.harbor+json; version=1.0" ))
209214 })
210215
211216 It ("returns a valid scanner.vuln.report.harbor as JSON" , func () {
212- adapter .EXPECT ().GetVulnerabilityReport ("scan-request-id" ).Return (vulnerabilityReport (), nil )
213- response := doGetRequest (handler , "/api/v1/scan/scan-request-id/report" )
217+ adapter .EXPECT ().GetVulnerabilityReport (reqID ).Return (vulnerabilityReport (), nil )
218+ response := doGetRequest (handler , reqPath )
214219
215220 var result harbor.VulnerabilityReport
216221 json .NewDecoder (response .Body ).Decode (& result )
@@ -220,59 +225,59 @@ var _ = Describe("Harbor Scanner Sysdig Secure API Adapter", func() {
220225
221226 Context ("when scan_request_id doesn't exist" , func () {
222227 BeforeEach (func () {
223- adapter .EXPECT ().GetVulnerabilityReport ("scan-request-id" ).Return (vulnerabilityReport (), scanner .ErrScanRequestIDNotFound )
228+ adapter .EXPECT ().GetVulnerabilityReport (reqID ).Return (vulnerabilityReport (), scanner .ErrScanRequestIDNotFound )
224229 })
225230
226231 It ("returns NOT_FOUND" , func () {
227- response := doGetRequest (handler , "/api/v1/scan/scan-request-id/report" )
232+ response := doGetRequest (handler , reqPath )
228233
229234 Expect (response .StatusCode ).To (Equal (http .StatusNotFound ))
230235 })
231236 })
232237
233238 Context ("when image is still being scanned" , func () {
234239 BeforeEach (func () {
235- adapter .EXPECT ().GetVulnerabilityReport ("scan-request-id" ).Return (vulnerabilityReport (), scanner .ErrVulnerabiltyReportNotReady )
240+ adapter .EXPECT ().GetVulnerabilityReport (reqID ).Return (vulnerabilityReport (), scanner .ErrVulnerabilityReportNotReady )
236241 })
237242
238243 It ("returns FOUND" , func () {
239- response := doGetRequest (handler , "/api/v1/scan/scan-request-id/report" )
244+ response := doGetRequest (handler , reqPath )
240245
241246 Expect (response .StatusCode ).To (Equal (http .StatusFound ))
242247 })
243248
244249 It ("returns the interval after request should be retried" , func () {
245- response := doGetRequest (handler , "/api/v1/scan/scan-request-id/report" )
250+ response := doGetRequest (handler , reqPath )
246251
247- Expect (response .Header .Get ("Refresh-After" )).To (Equal ("120" ))
252+ Expect (response .Header .Get ("Refresh-After" )).To (Equal (fmt . Sprintf ( "%d" , v1 . DefaultRefreshTimeInSeconds ) ))
248253 })
249254
250255 It ("returns the Location header with the URL to check" , func () {
251- response := doGetRequest (handler , "/api/v1/scan/scan-request-id/report" )
256+ response := doGetRequest (handler , reqPath )
252257
253- Expect (response .Header .Get ("Location" )).To (Equal ("/api/v1/scan/scan-request-id/report" ))
258+ Expect (response .Header .Get ("Location" )).To (Equal (reqPath ))
254259 })
255260 })
256261
257262 Context ("when other unexpected errors happen" , func () {
258263 BeforeEach (func () {
259- adapter .EXPECT ().GetVulnerabilityReport ("scan-request-id" ).Return (vulnerabilityReport (), ErrUnexpected )
264+ adapter .EXPECT ().GetVulnerabilityReport (reqID ).Return (vulnerabilityReport (), ErrUnexpected )
260265 })
261266
262267 It ("returns INTERNAL_SERVER_ERROR" , func () {
263- response := doGetRequest (handler , "/api/v1/scan/scan-request-id/report" )
268+ response := doGetRequest (handler , reqPath )
264269
265270 Expect (response .StatusCode ).To (Equal (http .StatusInternalServerError ))
266271 })
267272
268273 It ("returns scanner.adapter.error mime type" , func () {
269- response := doGetRequest (handler , "/api/v1/scan/scan-request-id/report" )
274+ response := doGetRequest (handler , reqPath )
270275
271276 Expect (response .Header .Get ("Content-Type" )).To (Equal ("application/vnd.scanner.adapter.error+json; version=1.0" ))
272277 })
273278
274279 It ("returns a the error encoded as JSON" , func () {
275- response := doGetRequest (handler , "/api/v1/scan/scan-request-id/report" )
280+ response := doGetRequest (handler , reqPath )
276281
277282 var result harbor.ErrorResponse
278283 json .NewDecoder (response .Body ).Decode (& result )
0 commit comments