fakeTaskDB.FailTaskReturns(task, nil) requestBody = &models.FailTaskRequest{ TaskGuid: taskGuid, FailureReason: failureReason, } }) JustBeforeEach(func() { request = newTestRequest(requestBody) handler.FailTask(responseRecorder, request) }) 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(responseRecorder.Code).To(Equal(http.StatusOK)) response := &models.TaskLifecycleResponse{} err := response.Unmarshal(responseRecorder.Body.Bytes()) Expect(err).NotTo(HaveOccurred()) Expect(response.Error).To(BeNil()) }) Context("and the task has a complete URL", func() { BeforeEach(func() { task := model_helpers.NewValidTask("hi-bob") task.CompletionCallbackUrl = "bogus"