Example #1
0
						builtBuild, plan := fakeEngine.CreateBuildArgsForCall(0)
						Ω(builtBuild).Should(Equal(pendingBuild))
						Ω(plan).Should(Equal(createdPlan))
					})

					Context("when scanning fails", func() {
						disaster := errors.New("nope")

						BeforeEach(func() {
							fakeScanner.ScanReturns(disaster)
						})

						It("errors the build", func() {
							Ω(fakeBuildsDB.ErrorBuildCallCount()).Should(Equal(1))

							buildID, err := fakeBuildsDB.ErrorBuildArgsForCall(0)
							Ω(buildID).Should(Equal(128))
							Ω(err).Should(Equal(disaster))
						})
					})
				})
			})

			Context("when the build cannot be scheduled", func() {
				BeforeEach(func() {
					fakePipelineDB.ScheduleBuildReturns(false, nil)
				})

				It("does not start a build", func() {
					Ω(fakeEngine.CreateBuildCallCount()).Should(Equal(0))
				})
Example #2
0
					})

					Context("due to a scanning error", func() {
						var problemz error
						BeforeEach(func() {
							problemz = errors.New("ermagersh errorz")
							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"))
							})
						})