github.com/pf-qiu/concourse/v6@v6.7.3-0.20201207032516-1f455d73275f/atc/worker/transport/stalled_worker_retryer_test.go (about) 1 package transport_test 2 3 import ( 4 "errors" 5 6 "github.com/pf-qiu/concourse/v6/atc/worker/transport" 7 "github.com/concourse/retryhttp" 8 "github.com/concourse/retryhttp/retryhttpfakes" 9 10 . "github.com/onsi/ginkgo" 11 . "github.com/onsi/gomega" 12 ) 13 14 var _ = Describe("UnreachableWorkerRetryer", func() { 15 var ( 16 retryer retryhttp.Retryer 17 delegateRetryer *retryhttpfakes.FakeRetryer 18 ) 19 20 BeforeEach(func() { 21 delegateRetryer = &retryhttpfakes.FakeRetryer{} 22 23 retryer = &transport.UnreachableWorkerRetryer{ 24 DelegateRetryer: delegateRetryer, 25 } 26 }) 27 28 Describe("IsRetryable", func() { 29 It("returns true when error is WorkerUnreachableError", func() { 30 err := transport.WorkerUnreachableError{ 31 WorkerName: "foo", 32 WorkerState: "stalled", 33 } 34 35 Expect(retryer.IsRetryable(err)).To(BeTrue()) 36 }) 37 38 It("delegates to DelegateRetryer if errors is not WorkerUnreachableError", func() { 39 err := errors.New("some-other-error") 40 delegateRetryer.IsRetryableReturns(true) 41 Expect(retryer.IsRetryable(err)).To(BeTrue()) 42 Expect(delegateRetryer.IsRetryableCallCount()).To(Equal(1)) 43 }) 44 }) 45 })