) BeforeEach(func() { TruncateTables() callback = func(job *gobble.Job) { callbackWasCalledWith = *job } database = gobble.NewDatabase(sqlDB) queue = gobble.NewQueue(database, gobble.Config{}) worker = gobble.NewWorker(1, queue, callback) }) AfterEach(func() { queue.Close() }) Describe("Perform", func() { It("reserves a job, performs the callback, and then dequeues the completed job", func() { job, err := queue.Enqueue(gobble.Job{ Payload: "the-payload", }) if err != nil { panic(err) } worker.Perform() Expect(callbackWasCalledWith.ID).To(Equal(job.ID))