}) It("logs and writes to the exit channel", func() { Eventually(logger).Should(gbytes.Say("unrecoverable-error")) Eventually(exitCh).Should(Receive()) }) }) Context("when finding the actualLRP fails", func() { BeforeEach(func() { fakeActualLRPDB.ActualLRPGroupByProcessGuidAndIndexReturns(nil, errors.New("could not find lrp")) }) It("returns an error and does not retry", func() { Expect(response.Error.Message).To(Equal("could not find lrp")) Expect(fakeActualLRPDB.ActualLRPGroupByProcessGuidAndIndexCallCount()).To(Equal(1)) }) It("does not emit a change event to the hub", func() { Consistently(actualHub.EmitCallCount).Should(Equal(0)) }) }) Context("when there is no instance in the actual lrp group", func() { BeforeEach(func() { actualLRPGroup.Instance = nil fakeActualLRPDB.ActualLRPGroupByProcessGuidAndIndexReturns(actualLRPGroup, nil) }) It("returns an error and does not retry", func() { Expect(response.Error).To(Equal(models.ErrResourceNotFound))