Context("when passed a pipeline and job name", func() { Context("when job exists", func() { Context("when the next build exists", func() { BeforeEach(func() { job := atc.Job{ Name: expectedJobName, NextBuild: &expectedBuild, } client.JobReturns(job, true, nil) }) It("returns the next build for that job", func() { build, err := GetBuild(client, expectedJobName, "", expectedPipelineName) Expect(err).NotTo(HaveOccurred()) Expect(build).To(Equal(expectedBuild)) Expect(client.JobCallCount()).To(Equal(1)) pipelineName, jobName := client.JobArgsForCall(0) Expect(pipelineName).To(Equal(expectedPipelineName)) Expect(jobName).To(Equal(expectedJobName)) }) }) Context("when the only the finished build exists", func() { BeforeEach(func() { job := atc.Job{ Name: expectedJobName, FinishedBuild: &expectedBuild, } client.JobReturns(job, true, nil) })