By("emitting a status event when started") started, err := database.StartBuild(build.ID, "engine", "metadata") Expect(err).NotTo(HaveOccurred()) Expect(started).To(BeTrue()) startedBuild, found, err := database.GetBuild(build.ID) Expect(err).NotTo(HaveOccurred()) Expect(found).To(BeTrue()) Expect(events.Next()).To(Equal(event.Status{ Status: atc.StatusStarted, Time: startedBuild.StartTime.Unix(), })) By("emitting a status event when finished") err = database.FinishBuild(build.ID, db.StatusSucceeded) Expect(err).NotTo(HaveOccurred()) finishedBuild, found, err := database.GetBuild(build.ID) Expect(err).NotTo(HaveOccurred()) Expect(found).To(BeTrue()) Expect(events.Next()).To(Equal(event.Status{ Status: atc.StatusSucceeded, Time: finishedBuild.EndTime.Unix(), })) By("ending the stream when finished") _, err = events.Next() Expect(err).To(Equal(db.ErrEndOfBuildEventStream)) })