Eventually(fakeBBS.ResolveTaskCallCount).Should(Equal(1)) _, actualGuid := fakeBBS.ResolveTaskArgsForCall(0) Expect(actualGuid).To(Equal("the-task-guid")) }) It("processes tasks in parallel", func() { for i := 0; i < task_handler.POOL_SIZE; i++ { simulateTaskCompleting() } Eventually(reqCount).Should(HaveLen(task_handler.POOL_SIZE)) }) Context("when marking the task as resolving fails", func() { BeforeEach(func() { fakeBBS.ResolvingTaskReturns(errors.New("failed to resolve task")) }) It("does not make a request to the task's callback URL", func() { simulateTaskCompleting() Consistently(fakeServer.ReceivedRequests, 0.25).Should(BeEmpty()) }) }) Context("when marking the task as resolving succeeds", func() { It("POSTs to the task's callback URL", func() { simulateTaskCompleting() statusCodes <- 200