Expect(reloadedJob.RetryCount).To(Equal(5)) }) }) Describe("Reserve", func() { It("reserves a job in the database", func() { job := gobble.Job{ Payload: "something", } err := database.Connection.Insert(&job) if err != nil { panic(err) } jobChannel := queue.Reserve("workerId") reservedJob := <-jobChannel Expect(reservedJob.ID).To(Equal(job.ID)) Expect(reservedJob.ActiveAt).To(BeTemporally("~", time.Now(), 100*time.Millisecond)) }) It("keeps trying to reserve a job until one becomes available", func() { jobChannel := queue.Reserve("my-id") Consistently(jobChannel).ShouldNot(Receive()) job, err := queue.Enqueue(gobble.Job{ Payload: "hello", }) if err != nil {