) BeforeEach(func() { taskGuid = "task-guid" failureReason = "just cuz ;)" task := model_helpers.NewValidTask("hi-bob") fakeTaskDB.FailTaskReturns(task, nil) }) JustBeforeEach(func() { err = controller.FailTask(logger, taskGuid, failureReason) }) Context("when failing the task succeeds", func() { It("returns no error", func() { _, actualTaskGuid, actualFailureReason := fakeTaskDB.FailTaskArgsForCall(0) Expect(actualTaskGuid).To(Equal(taskGuid)) Expect(actualFailureReason).To(Equal(failureReason)) Expect(err).NotTo(HaveOccurred()) }) Context("and the task has a complete URL", func() { BeforeEach(func() { task := model_helpers.NewValidTask("hi-bob") task.CompletionCallbackUrl = "bogus" fakeTaskDB.FailTaskReturns(task, nil) }) It("causes the workpool to complete its callback work", func() { Eventually(fakeTaskCompletionClient.SubmitCallCount).Should(Equal(1)) })