Eventually(queue.Reserve("some-other-worker")).Should(Receive()) }) }) }) }) Describe("Dequeue", func() { It("deletes the job from the queue", func() { job, err := queue.Enqueue(gobble.Job{}) Expect(err).NotTo(HaveOccurred()) results, err := database.Connection.Select(gobble.Job{}, "SELECT * FROM `jobs`") Expect(err).NotTo(HaveOccurred()) Expect(results).To(HaveLen(1)) queue.Dequeue(job) results, err = database.Connection.Select(gobble.Job{}, "SELECT * FROM `jobs`") Expect(err).NotTo(HaveOccurred()) Expect(results).To(HaveLen(0)) }) It("ignores errors when the row is gone", func() { job, err := queue.Enqueue(gobble.Job{}) Expect(err).NotTo(HaveOccurred()) results, err := database.Connection.Select(gobble.Job{}, "SELECT * FROM `jobs`") Expect(err).NotTo(HaveOccurred()) Expect(results).To(HaveLen(1)) Expect(func() {