@@ -421,17 +421,27 @@ var _ = Describe("BlobstoreClient configuration", func() {
421421 Expect (timeout .Seconds ()).To (Equal (45.0 ))
422422 })
423423
424- It ("disables timeout when set to 0 " , func () {
425- dummyJSONBytes := []byte (`{"access_key_id":"id","secret_access_key":"key","bucket_name":"some-bucket","http_request_timeout":"0 "}` )
424+ It ("disables timeout when set to 0s " , func () {
425+ dummyJSONBytes := []byte (`{"access_key_id":"id","secret_access_key":"key","bucket_name":"some-bucket","http_request_timeout":"0s "}` )
426426 dummyJSONReader := bytes .NewReader (dummyJSONBytes )
427427
428428 c , err := config .NewFromReader (dummyJSONReader )
429429 Expect (err ).ToNot (HaveOccurred ())
430+ Expect (c .HTTPRequestTimeout ).To (Equal ("0s" ))
430431 timeout , err := c .HTTPRequestTimeoutValue ()
431432 Expect (err ).ToNot (HaveOccurred ())
432433 Expect (timeout ).To (BeZero ())
433434 })
434435
436+ It ("rejects numeric timeout values" , func () {
437+ dummyJSONBytes := []byte (`{"access_key_id":"id","secret_access_key":"key","bucket_name":"some-bucket","http_request_timeout":45}` )
438+ dummyJSONReader := bytes .NewReader (dummyJSONBytes )
439+
440+ _ , err := config .NewFromReader (dummyJSONReader )
441+ Expect (err ).To (HaveOccurred ())
442+ Expect (err .Error ()).To (ContainSubstring ("cannot unmarshal number into Go struct field" ))
443+ })
444+
435445 It ("rejects invalid duration formats" , func () {
436446 dummyJSONBytes := []byte (`{"access_key_id":"id","secret_access_key":"key","bucket_name":"some-bucket","http_request_timeout":"bananas"}` )
437447 dummyJSONReader := bytes .NewReader (dummyJSONBytes )
@@ -441,12 +451,12 @@ var _ = Describe("BlobstoreClient configuration", func() {
441451 Expect (err .Error ()).To (ContainSubstring ("invalid http_request_timeout" ))
442452 })
443453
444- It ("rejects non-positive durations" , func () {
445- dummyJSONBytes := []byte (`{"access_key_id":"id","secret_access_key":"key","bucket_name":"some-bucket","http_request_timeout":"0s "}` )
454+ It ("rejects negative durations" , func () {
455+ dummyJSONBytes := []byte (`{"access_key_id":"id","secret_access_key":"key","bucket_name":"some-bucket","http_request_timeout":"-1s "}` )
446456 dummyJSONReader := bytes .NewReader (dummyJSONBytes )
447457
448458 _ , err := config .NewFromReader (dummyJSONReader )
449- Expect (err ).To (MatchError ("http_request_timeout must be greater than 0 " ))
459+ Expect (err ).To (MatchError ("http_request_timeout must not be negative " ))
450460 })
451461 })
452462
0 commit comments