Expect(fakeDB.FinishBuildCallCount()).To(Equal(1)) buildID, savedStatus := fakeDB.FinishBuildArgsForCall(0) Expect(buildID).To(Equal(42)) Expect(savedStatus).To(Equal(db.StatusSucceeded)) }) }) }) Context("when exit status is 0", func() { BeforeEach(func() { fakeDB.SaveBuildInputReturns(db.SavedVersionedResource{ ID: 42, VersionedResource: db.VersionedResource{ PipelineName: "some-pipeline", Resource: "some-input-resource", Type: "some-type", Version: db.Version{"result": "version"}, Metadata: []db.MetadataField{{"saved", "metadata"}}, }, }, nil) }) JustBeforeEach(func() { inputDelegate.Completed(exec.ExitStatus(0), versionInfo) }) It("saves the build's input", func() { Expect(fakeDB.SaveBuildInputCallCount()).To(Equal(1)) buildID, savedInput := fakeDB.SaveBuildInputArgsForCall(0) Expect(buildID).To(Equal(42))