fakeJobService.CanBuildBeScheduledReturns(nil, false, "failed-to-scan", problemz) }) It("logs and returns nil", func() { Expect(engineBuild).To(BeNil()) Expect(logger).To(gbytes.Say("failed-to-schedule-build")) Expect(fakeBuildsDB.ErrorBuildCallCount()).To(Equal(1)) buildID, scanningError := fakeBuildsDB.ErrorBuildArgsForCall(0) Expect(buildID).To(Equal(build.ID)) Expect(scanningError).To(Equal(problemz)) }) Context("when ErrorBuild errors", func() { BeforeEach(func() { fakeBuildsDB.ErrorBuildReturns(errors.New("freak out!?")) }) It("logs and returns nil", func() { Expect(engineBuild).To(BeNil()) Expect(logger).To(gbytes.Say("failed-to-schedule-build")) Expect(logger).To(gbytes.Say("failed-to-mark-build-as-errored")) }) }) }) }) }) Context("when build prep cannot be acquired", func() { BeforeEach(func() { fakeBuildsDB.GetBuildPreparationReturns(db.BuildPreparation{}, false, nil)