Example #1
0
					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() {