disaster := errors.New("nope") BeforeEach(func() { fakeVersionedSource.RunReturns(disaster) }) It("exits with the failure", func() { Eventually(process.Wait()).Should(Receive(Equal(disaster))) }) It("invokes the delegate's Failed callback without completing", func() { Eventually(process.Wait()).Should(Receive(Equal(disaster))) Expect(putDelegate.CompletedCallCount()).To(BeZero()) Expect(putDelegate.FailedCallCount()).To(Equal(1)) Expect(putDelegate.FailedArgsForCall(0)).To(Equal(disaster)) }) Describe("releasing", func() { It("releases the resource with a ttl of 1 hour", func() { <-process.Wait() Expect(fakeResource.ReleaseCallCount()).To(BeZero()) step.Release() Expect(fakeResource.ReleaseCallCount()).To(Equal(1)) Expect(fakeResource.ReleaseArgsForCall(0)).To(Equal(worker.FinalTTL(1 * time.Hour))) }) }) })
disaster := errors.New("nope") BeforeEach(func() { fakeVersionedSource.RunReturns(disaster) }) It("exits with the failure", func() { Eventually(process.Wait()).Should(Receive(Equal(disaster))) }) It("invokes the delegate's Failed callback without completing", func() { Eventually(process.Wait()).Should(Receive(Equal(disaster))) Ω(putDelegate.CompletedCallCount()).Should(BeZero()) Ω(putDelegate.FailedCallCount()).Should(Equal(1)) Ω(putDelegate.FailedArgsForCall(0)).Should(Equal(disaster)) }) Context("with a resource script failure", func() { var resourceScriptError resource.ErrResourceScriptFailed BeforeEach(func() { resourceScriptError = resource.ErrResourceScriptFailed{ ExitStatus: 1, } fakeVersionedSource.RunReturns(resourceScriptError) }) It("invokes the delegate's Finished callback instead of failed", func() {